Swift 3 擴(kuò)展(extension)

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)制字符串來初始化顏色等等

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容