@@ -819,7 +819,7 @@ func isLessThan(lhs: borrowing A, rhs: borrowing A) -> Bool {
819
819
}
820
820
```
821
821
822
- 如果函数需要保持参数的值,例如,通过将其存储在全局变量中 --- 您可以使用 ` copy ` 明确地复制该值。
822
+ 如果函数需要保持参数的值,例如,通过将其存储在全局变量中—— 您可以使用 ` copy ` 明确地复制该值。
823
823
824
824
``` swift
825
825
// As above, but this `isLessThan` also wants to record the smallest value
@@ -1229,7 +1229,7 @@ func <#function name#>(<#parameters#>) async -> <#return type#> {
1229
1229
}
1230
1230
```
1231
1231
1232
- 对异步函数或方法的调用必须包装在一个 ` await ` 表达式中 --- 也就是说,它们必须在 ` await ` 操作符的作用域内。
1232
+ 对异步函数或方法的调用必须包装在一个 ` await ` 表达式中—— 也就是说,它们必须在 ` await ` 操作符的作用域内。
1233
1233
1234
1234
` async ` 关键字是函数类型的一部分,同步函数是异步函数的子类型。因此,您可以覆盖异在期望异步函数的上下文中使用同步函数。例如,您可以用同步方法步方法,并且同步方法可以满足需要异步方法的协议要求。
1235
1235
@@ -1298,7 +1298,7 @@ Swift 定义了一个 [`Never`][] 类型,表示一个函数或方法不会返
1298
1298
1299
1299
一个* 枚举声明* 将一个命名的枚举类型引入到你的程序中。
1300
1300
1301
- 枚举声明有两种基本形式,并使用 ` enum ` 关键字进行声明。使用任一形式声明的枚举的主体包含零个或多个值 --- 称为 * 枚举案例* --- 以及任意数量的声明,包括计算属性、实例方法、类型方法、构造器、类型别名,甚至其他枚举、结构体、类和 actor 声明。枚举声明不能包含析构器或协议声明。
1301
+ 枚举声明有两种基本形式,并使用 ` enum ` 关键字进行声明。使用任一形式声明的枚举的主体包含零个或多个值—— 称为 * 枚举案例* —— 以及任意数量的声明,包括计算属性、实例方法、类型方法、构造器、类型别名,甚至其他枚举、结构体、类和 actor 声明。枚举声明不能包含析构器或协议声明。
1302
1302
1303
1303
枚举类型可以采用任意数量的协议,但不能从类、结构或其他枚举继承。
1304
1304
@@ -1396,7 +1396,7 @@ enum Tree<T> {
1396
1396
```
1397
1397
-->
1398
1398
1399
- 要为所有具有关联值的枚举案例启用间接引用,请使用 ` indirect ` 修饰符标记整个枚举 --- 当枚举包含许多需要标记为 ` indirect ` 修饰符的情况时,这样做非常方便。
1399
+ 要为所有具有关联值的枚举案例启用间接引用,请使用 ` indirect ` 修饰符标记整个枚举—— 当枚举包含许多需要标记为 ` indirect ` 修饰符的情况时,这样做非常方便。
1400
1400
1401
1401
一个标记为 ` indirect ` 修饰符的枚举可以包含具有关联值的情况和没有关联值的情况的混合。然而,它不能包含任何也标记为 ` indirect ` 修饰符的案例。
1402
1402
@@ -1715,7 +1715,7 @@ protocol <#protocol name#>: <#inherited protocols#> {
1715
1715
1716
1716
您可以通过在该类型的扩展声明中采用协议,为先前声明的类型添加协议符合性。在扩展中,您必须实现所采用协议的所有要求。如果该类型已经实现了所有要求,您可以将扩展声明的主体留空。
1717
1717
1718
- 默认情况下,符合协议的类型必须实现协议中声明的所有属性、方法和下标。也就是说,您可以使用 ` optional ` 声明修饰符来标记这些协议成员声明,以指定符合类型的实现是可选的。` optional ` 修饰符只能应用于标记为 ` objc ` 属性的成员,并且只能应用于标记为 ` objc ` 属性的协议成员。因此,只有类类型可以采用并符合包含可选成员要求的协议。有关如何使用 ` optional ` 声明修饰符的信息,以及如何访问可选协议成员的指导——例如,当您不确定符合类型是否实现它们时 --- 请参见 < doc:Protocols#Optional-Protocol-Requirements > 。
1718
+ 默认情况下,符合协议的类型必须实现协议中声明的所有属性、方法和下标。也就是说,您可以使用 ` optional ` 声明修饰符来标记这些协议成员声明,以指定符合类型的实现是可选的。` optional ` 修饰符只能应用于标记为 ` objc ` 属性的成员,并且只能应用于标记为 ` objc ` 属性的协议成员。因此,只有类类型可以采用并符合包含可选成员要求的协议。有关如何使用 ` optional ` 声明修饰符的信息,以及如何访问可选协议成员的指导——例如,当您不确定符合类型是否实现它们时—— 请参见 < doc:Protocols#Optional-Protocol-Requirements > 。
1719
1719
1720
1720
<!--
1721
1721
TODO: Currently, you can't check for an optional initializer,
0 commit comments