diff --git a/swift-6.docc/LanguageGuide/Initialization.md b/swift-6.docc/LanguageGuide/Initialization.md index d10ffd776..8f0ee482d 100644 --- a/swift-6.docc/LanguageGuide/Initialization.md +++ b/swift-6.docc/LanguageGuide/Initialization.md @@ -462,7 +462,7 @@ var item = ShoppingListItem() ![](initializersExample03) -### 结构体类型的成员逐一构造器 +### 结构体类型的逐一成员构造器 如果结构体类型没有定义任何自定义构造器,它们会自动获得*逐一成员构造器*。与默认构造器不同,即使存储属性没有默认值,结构体也会获得逐一成员构造器。 @@ -478,7 +478,7 @@ var item = ShoppingListItem() ``` --> -成员逐一构造器是一种用于初始化新结构体实例里成员属性的快捷方法。新实例的属性的初始值可以通过名称传递给逐一成员构造器。 +逐一成员构造器是一种用于初始化新结构体实例里成员属性的快捷方法。新实例的属性的初始值可以通过名称传递给逐一成员构造器。 下面的示例定义了一个名为 `Size` 的结构体,该结构体有两个属性,分别是 `width` 和 `height`。通过赋予默认值 `0.0`,这两个属性都被推断为 `Double` 类型。 @@ -502,15 +502,6 @@ let twoByTwo = Size(width: 2.0, height: 2.0) ``` --> -When you call a memberwise initializer, -you can omit values for any properties -that have default values. -In the example above, -the `Size` structure has a default value -for both its `height` and `width` properties. -You can omit either property or both properties, -and the initializer uses the default value for anything you omit. -For example: 当你调用逐一成员构造器时,你可以省略任何具有默认值的属性。在上面的示例中,`Size` 结构体的 `height` 和 `width` 属性都有默认值。你可以省略其中一个或两个属性,构造器会使用默认值。例如: ```swift @@ -670,7 +661,7 @@ let centerRect = Rect(center: Point(x: 4.0, y: 4.0), ``` --> -构造器 init(center:size:)` 可以直接将 `origin` 和 `size` 的新值赋值到对应的属性中。然而,构造器 `init(center:size:)` 通过使用提供了相关功能的现有构造器将会更加便捷(而且意图更清晰)。 +构造器 `init(center:size:)` 可以直接将 `origin` 和 `size` 的新值赋值到对应的属性中。然而,构造器 `init(center:size:)` 通过使用提供了相关功能的现有构造器将会更加便捷(而且意图更清晰)。 > 注意: 如果你想使用另一种不需要自己定义的 `init()` and `init(origin:size:)` 构造器的方式来实现这个例子, 请参考 . diff --git a/swift-6.docc/LanguageGuide/MemorySafety.md b/swift-6.docc/LanguageGuide/MemorySafety.md index 15a7dd71d..60e26ba8e 100644 --- a/swift-6.docc/LanguageGuide/MemorySafety.md +++ b/swift-6.docc/LanguageGuide/MemorySafety.md @@ -156,7 +156,7 @@ increment(&stepSize) ``` --> -在上面的代码里,`stepSize` 是一个全局变量,并且它可以通常可以在 `increment(_:)` 里被访问。然而,对于 `stepSize` 的读访问与 `number` 的写访问重叠了。就像下面展示的那样,`number` 和 `stepSize` 都指向了同一个内存区域。针对同一块内存区域的读和写访问重叠了,因此产生了冲突。 +在上面的代码里,`stepSize` 是一个全局变量,并且它通常可以在 `increment(_:)` 里被访问。然而,对于 `stepSize` 的读访问与 `number` 的写访问重叠了。就像下面展示的那样,`number` 和 `stepSize` 都指向了同一个内存区域。针对同一块内存区域的读和写访问重叠了,因此产生了冲突。 ![](memory_increment)