Swift中的where使用


以下純屬自己mark記錄哈,之前在使用協(xié)議時,遇到較復雜的拓展中使用where意思大致能懂,但是對于其使用規(guī)范還是有定的疑惑的,最近有空了就去看了下where關鍵字的使用哈,整理了下,畢竟代碼重點還是要會寫。

1.首先where最常用的還是在協(xié)議部分(最主要還是給協(xié)議添加默認實現(xiàn))

//協(xié)議相結合的方式
//基礎協(xié)議
protocol aProtocol{}
extension aProtocol where Self:UIView{
    //只給遵守myProtocol協(xié)議的UIView添加了拓展(強大的協(xié)議拓展  可以給協(xié)議添加默認實現(xiàn)   面向協(xié)議編程的基礎)
    func getString() -> String{
        return "string"
    }
}

2.在使用泛型的時候也常常用到where對泛型加以限制

func genericFunc<T>(num: T) where T:ExpressibleByStringLiteral {
    print(num)
}

3.這也是我在看別人博客的時候看到的,比較少用的在forin循環(huán)中使用where語句(相比而言,可能會更加清晰點,個人見解哈)其實有點想guard語法

let list = [1,2,3,4,5,6]
for i in list where i > 5 {
    print(i)
}

//上面使用where等同于以下的forin循環(huán)

for j in list {
    if j > 5{
        print(j)
    }
}

綜上所述,where常見用法完畢,其實還有元組switch中使用where的情況,但是鑒于元組很少用到,所以~
Thank you for watching~

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

推薦閱讀更多精彩內容

  • 參考資源《swifter》https://github.com/iOS-Swift-Developers/Swif...
    柯浩然閱讀 1,467評論 0 6
  • 136.泛型 泛型代碼讓你可以寫出靈活,可重用的函數(shù)和類型,它們可以使用任何類型,受你定義的需求的約束。你可以寫出...
    無灃閱讀 1,511評論 0 4
  • 從雪山歸來的第一天腹瀉、第二日開始重感冒、今天是昏昏沉沉的第三天。是的,我的身體在嚴肅的反抗著我之前的過激行為。 ...
    霜巍閱讀 146評論 0 0
  • 心里無限生成的線,是找不到根源的盡頭,衍生了復雜 我拖著疲憊不堪的軀殼回到我原以為的小窩,耳邊卻回蕩著親情的希望和...
    涼風憂等夏閱讀 188評論 0 0