扩展用来给已有的类、结构体和协议增加新功能:
- 添加计算实例属性和计算类型属性;
- 定义实例方法和类型方法;
- 提供新初始化器;
- 定义下标;
- 定义和使用新内嵌类型;
- 使现有的类型遵循某协议
代码示例:
extension Int {
func repetitions(task: () -> Void) {
for _ in 0..<self {
task()
}
}
}
给 Int类型添加了一个 repetitions 的新实例方法。repetitions(task:) 方法接收一个 () -> Void 类型的单一实际参数,它表示一个没有参数且无返回值的函数。
调用 repetitions 方法:
2.repetitions {
print("Hello!")
}
// Hello!
// Hello!
网友评论