Skip to content

Commit da909c7

Browse files
committed
💬 遵循并符合 -> 采用并遵循
1 parent 230dc24 commit da909c7

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

swift-6-beta.docc/LanguageGuide/Protocols.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
定义遵循协议的类型必须实现的要求。
44

5-
**协议(Protocol)** 定义了满足特定任务或功能所需的方法、属性和其他要求的蓝图。类、结构体或枚举可以 **遵循(adopt)** 该协议,并提供协议要求的具体实现。任何满足协议要求的类型都被称为 **符合(conform)** 该协议。
5+
**协议(Protocol)** 定义了满足特定任务或功能所需的方法、属性和其他要求的蓝图。类、结构体或枚举可以 **采用(adopt)** 该协议,并提供协议要求的具体实现。任何满足协议要求的类型都被称为 **遵循(conform)** 该协议。
66

77
除了声明所遵循类型必须实现的要求之外,你还可以通过对协议进行扩展来实现一部分要求或附加功能,这样遵循协议的类型就能够使用这些功能。
88

@@ -169,7 +169,7 @@ let john = Person(fullName: "John Appleseed")
169169

170170
每个 `Person` 实例都有一个 `String` 类型的存储属性 `fullName`。这正好满足了 `FullyNamed` 协议的要求,也就意味着 `Person` 结构体正确地遵循了协议。(如果协议要求未被完全满足,Swift 在编译时会报错。)
171171

172-
下面是一个更为复杂的类,它遵循并符合了 `FullyNamed` 协议:
172+
下面是一个更为复杂的类,它采用并遵循了 `FullyNamed` 协议:
173173

174174
```swift
175175
class Starship: FullyNamed {
@@ -258,7 +258,7 @@ protocol RandomNumberGenerator {
258258

259259
`RandomNumberGenerator` 协议并不关心每一个随机数是怎样生成的 —— 它只要求生成器提供一种标准的方式来生成新的随机数。
260260

261-
这里有一个遵循并符合 `RandomNumberGenerator` 协议的类。该类实现了一个叫做 **线性同余生成器(linear congruential generator)** 的伪随机数算法。
261+
这里有一个采用并遵循 `RandomNumberGenerator` 协议的类。该类实现了一个叫做 **线性同余生成器(linear congruential generator)** 的伪随机数算法。
262262

263263
```swift
264264
class LinearCongruentialGenerator: RandomNumberGenerator {
@@ -764,9 +764,9 @@ game.play(rounds: 3)
764764

765765
## 在扩展里添加协议遵循
766766

767-
即便无法修改源代码,你依然可以通过扩展令已有类型遵循并符合协议。扩展可以为已有类型添加属性、方法、下标以及构造器,因此可以符合协议中可能需要的任意要求。关于扩展的更多详情,参见 <doc:Extensions>
767+
即便无法修改源代码,你依然可以通过扩展令已有类型采用并遵循协议。扩展可以为已有类型添加属性、方法、下标以及构造器,因此可以符合协议中可能需要的任意要求。关于扩展的更多详情,参见 <doc:Extensions>
768768

769-
> 注意: 当一个协议的遵循被添加到实例类型的扩展中时,现有的实例会自动遵循并符合该协议
769+
> 注意: 当一个协议的遵循被添加到实例类型的扩展中时,现有的实例会自动采用并遵循该协议
770770
771771
例如下面这个 `TextRepresentable` 协议,任何想要通过文本表示一些内容的类型都可以实现该协议。这些想要表示的内容可以是实例本身的描述,也可以是实例当前状态的文本描述:
772772

@@ -786,7 +786,7 @@ protocol TextRepresentable {
786786
```
787787
-->
788788

789-
上面提到的 `Dice` 类可以被扩展以遵循并符合 `TextRepresentable` 协议:
789+
上面提到的 `Dice` 类可以被扩展以采用并遵循 `TextRepresentable` 协议:
790790

791791
<!--
792792
No "from above" xref because
@@ -814,7 +814,7 @@ extension Dice: TextRepresentable {
814814
```
815815
-->
816816

817-
通过扩展遵循并适配协议,和在原始定义中遵循并符合协议的效果完全相同。协议名称写在类型名之后,以冒号隔开,然后在扩展的大括号内实现协议要求的内容。
817+
通过扩展遵循并适配协议,和在原始定义中采用并遵循协议的效果完全相同。协议名称写在类型名之后,以冒号隔开,然后在扩展的大括号内实现协议要求的内容。
818818

819819
现在所有 `Dice` 的实例都可以被看做 `TextRepresentable` 类型:
820820

@@ -862,7 +862,7 @@ print(game.textualDescription)
862862

863863
### 有条件地遵循协议
864864

865-
泛型类型可能只在某些情况下满足一个协议的要求,比如当类型的泛型形式参数遵循对应协议时。你可以通过在扩展类型时列出限制让泛型类型有条件地遵循某协议。在你采纳协议的名字后面写泛型 `where` 分句。更多关于泛型 `where` 分句,参见 <doc:Generics#Generic-Where-Clauses>
865+
泛型类型可能只在某些情况下满足一个协议的要求,比如当类型的泛型形式参数遵循对应协议时。你可以通过在扩展类型时列出限制让泛型类型有条件地遵循某协议。在你采用协议的名字后面写泛型 `where` 分句。更多关于泛型 `where` 分句,参见 <doc:Generics#Generic-Where-Clauses>
866866

867867
下面的扩展让 `Array` 类型只要在存储遵循 `TextRepresentable` 协议的元素时,就遵循 `TextRepresentable` 协议。
868868

@@ -1198,7 +1198,7 @@ protocol PrettyTextRepresentable: TextRepresentable {
11981198

11991199
例子中定义了一个新的协议 `PrettyTextRepresentable`,它继承自 `TextRepresentable` 协议。任何遵循 `PrettyTextRepresentable` 协议的类型,除了必须满足 `TextRepresentable` 协议的要求,**还要** 额外满足 `PrettyTextRepresentable` 协议的要求。在这个例子中,`PrettyTextRepresentable` 协议额外要求遵循协议的类型提供一个返回值为 `String` 类型的 `prettyTextualDescription` 属性。
12001200

1201-
如下所示,扩展 `SnakesAndLadders`使其遵循并符合 `PrettyTextRepresentable` 协议:
1201+
如下所示,扩展 `SnakesAndLadders`使其采用并遵循 `PrettyTextRepresentable` 协议:
12021202

12031203
```swift
12041204
extension SnakesAndLadders: PrettyTextRepresentable {

0 commit comments

Comments
 (0)