补充一些缺失标题链接
This commit is contained in:
@ -17,7 +17,7 @@ Swift 中的扩展可以:
|
||||
>
|
||||
> 扩展可以给一个类型添加新的功能,但是不能重写已经存在的功能。
|
||||
|
||||
## 扩展的语法
|
||||
## 扩展的语法 {#extension_syntax}
|
||||
|
||||
使用 `extension` 关键字声明扩展:
|
||||
|
||||
@ -43,7 +43,7 @@ extension SomeType: SomeProtocol, AnotherProtocol {
|
||||
>
|
||||
> 对一个现有的类型,如果你定义了一个扩展来添加新的功能,那么这个类型的所有实例都可以使用这个新功能,包括那些在扩展定义之前就存在的实例。
|
||||
|
||||
## 计算型属性
|
||||
## 计算型属性 {#computed_properties}
|
||||
|
||||
扩展可以给现有类型添加计算型实例属性和计算型类属性。这个例子给 Swift 内建的 `Double` 类型添加了五个计算型实例属性,从而提供与距离单位相关工作的基本支持:
|
||||
|
||||
@ -81,7 +81,7 @@ print("A marathon is \(aMarathon) meters long")
|
||||
>
|
||||
> 扩展可以添加新的计算属性,但是它们不能添加存储属性,或向现有的属性添加属性观察者。
|
||||
|
||||
## 构造器
|
||||
## 构造器 {#initializers}
|
||||
|
||||
扩展可以给现有的类型添加新的构造器。它使你可以把自定义类型作为参数来供其他类型的构造器使用,或者在类型的原始实现上添加额外的构造选项。
|
||||
|
||||
@ -138,7 +138,7 @@ let centerRect = Rect(center: Point(x: 4.0, y: 4.0),
|
||||
>
|
||||
> 如果你通过扩展提供一个新的构造器,你有责任确保每个通过该构造器创建的实例都是初始化完整的。
|
||||
|
||||
## 方法
|
||||
## 方法 {#methods}
|
||||
|
||||
扩展可以给现有类型添加新的实例方法和类方法。在下面的例子中,给 `Int` 类型添加了一个新的实例方法叫做 `repetitions`:
|
||||
|
||||
@ -165,7 +165,7 @@ extension Int {
|
||||
// Hello!
|
||||
```
|
||||
|
||||
### 可变实例方法
|
||||
### 可变实例方法 {#mutating_instance_methods}
|
||||
|
||||
通过扩展添加的实例方法同样也可以修改(或 *mutating(改变)*)实例本身。结构体和枚举的方法,若是可以修改 `self` 或者它自己的属性,则必须将这个实例方法标记为 `mutating`,就像是改变了方法的原始实现。
|
||||
|
||||
@ -182,7 +182,7 @@ someInt.square()
|
||||
// someInt 现在是 9
|
||||
```
|
||||
|
||||
## 下标
|
||||
## 下标 {#subscripts}
|
||||
|
||||
扩展可以给现有的类型添加新的下标。下面的例子中,对 Swift 的 `Int` 类型添加了一个整数类型的下标。下标 `[n]` 从数字右侧开始,返回小数点后的第 `n` 位:
|
||||
|
||||
@ -218,7 +218,7 @@ extension Int {
|
||||
0746381295[9]
|
||||
```
|
||||
|
||||
## 嵌套类型
|
||||
## 嵌套类型 {#nested_yypes}
|
||||
|
||||
扩展可以给现有的类,结构体,还有枚举添加新的嵌套类型:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user