swift中的擴(kuò)展,跟OC中的category很像,注意,這里只能擴(kuò)展計算屬性,如果擴(kuò)展構(gòu)造函數(shù),也只能擴(kuò)展便利構(gòu)造函數(shù)
首先,我們可以擴(kuò)展自己寫的類(這種情況適用多人開發(fā),可以給同一個類擴(kuò)展自己想要的方法)
這里,舉例子擴(kuò)展系統(tǒng)的類Int
我們這樣求一個整數(shù)的平方
let a = 9
a.square
我們只需要給Int擴(kuò)展一個計算屬性或者方法就可以,這類我們擴(kuò)展出一個計算屬性
extension Int{
var square: Int{
return self*self
}
}
再對Int擴(kuò)展一個很有意思的
func repetitions(task: () -> Void){
for _ in 0..<self{
task()
}
}
我們這樣寫就是閉包中的代碼執(zhí)9次
let num = 9
num.repetitions {
print("nihao")
}
順便提一下循環(huán)這個東西
如果不想一次只加 1,可以這樣寫for循環(huán)
for i in stride(from: 1, to: num, by: 2) {
print(i)
}
解釋一下代碼,from:開始值,閉區(qū)間,to:結(jié)束值,開區(qū)間,by:每次增加的數(shù)值(如果是負(fù)數(shù),就是遞減的循環(huán))
擴(kuò)展系統(tǒng)類,有時候很有用,比如擴(kuò)展UIColor,可以使用十六進(jìn)制字符串來初始化顏色等等