diff --git a/source/chapter2/20_Extensions.md b/source/chapter2/20_Extensions.md index d009ab77..1663bc79 100755 --- a/source/chapter2/20_Extensions.md +++ b/source/chapter2/20_Extensions.md @@ -99,6 +99,11 @@ println("A marathon is \(aMarathon) meters long") 如果你使用扩展向一个值类型添加一个构造器,该构造器向所有的存储属性提供默认值,而且没有定义任何定制构造器(custom initializers),那么对于来自你的扩展构造器中的值类型,你可以调用默认构造器(default initializers)和逐一成员构造器(memberwise initializers)。 正如在值类型的构造器授权中描述的,如果你已经把构造器写成值类型原始实现的一部分,上述规则不再适用。 + +如果你使用扩展向一个值类型添加一个构造器,如果该值类型已经向所有的存储属性提供默认值,而且没有定义任何定制构造器(custom initializers),那么你可以在值类型的扩展构造器中调用默认构造器(default initializers)和逐一成员构造器(memberwise initializers)。 +正如在值类型的构造器委托中描述的,如果你已经把构造器写成值类型原始实现的一部分,上述规则不再适用。 + + 下面的例子定义了一个用于描述几何矩形的定制结构体`Rect`。这个例子同时定义了两个辅助结构体`Size`和`Point`,它们都把`0.0`作为所有属性的默认值: ```swift @@ -267,7 +272,7 @@ extension Character { 该例子向`Character`添加了新的嵌套枚举。这个名为`Kind`的枚举表示特定字符的类型。具体来说,就是表示一个标准的拉丁脚本中的字符是元音还是辅音(不考虑口语和地方变种),或者是其它类型。 -这个类子还向`Character`添加了一个新的计算实例属性,即`kind`,用来返回合适的`Kind`枚举成员。 +这个例子还向`Character`添加了一个新的计算实例属性,即`kind`,用来返回合适的`Kind`枚举成员。 现在,这个嵌套枚举可以和一个`Character`值联合使用了: