swift中的扩展,跟OC中的category很像,注意,这里只能扩展计算属性,如果扩展构造函数,也只能扩展便利构造函数
首先,我们可以扩展自己写的类(这种情况适用多人开发,可以给同一个类扩展自己想要的方法)
这里,举例子扩展系统的类Int
我们这样求一个整数的平方
let a = 9
a.square
我们只需要给Int扩展一个计算属性或者方法就可以,这类我们扩展出一个计算属性
extension Int{
var square: Int{
return self*self
}
}
再对Int扩展一个很有意思的
func repetitions(task: () -> Void){
for _ in 0..<self{
task()
}
}
我们这样写就是闭包中的代码执9次
let num = 9
num.repetitions {
print("nihao")
}
顺便提一下循环这个东西
如果不想一次只加 1,可以这样写for循环
for i in stride(from: 1, to: num, by: 2) {
print(i)
}
解释一下代码,from:开始值,闭区间,to:结束值,开区间,by:每次增加的数值(如果是负数,就是递减的循环)
扩展系统类,有时候很有用,比如扩展UIColor,可以使用十六进制字符串来初始化颜色等等