补充一些缺失标题链接

This commit is contained in:
Jax Wu
2019-03-27 14:59:18 +08:00
parent 3acdfbca8c
commit 7b603a307f
7 changed files with 21 additions and 22 deletions

View File

@ -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}
扩展可以给现有的类,结构体,还有枚举添加新的嵌套类型: