我的SWIFT收集

Swift中的where使用

2018-04-17  本文已影响0人  缺一门

以下纯属自己mark记录哈,之前在使用协议时,遇到较复杂的拓展中使用where意思大致能懂,但是对于其使用规范还是有定的疑惑的,最近有空了就去看了下where关键字的使用哈,整理了下,毕竟代码重点还是要会写。

1.首先where最常用的还是在协议部分(最主要还是给协议添加默认实现)

//协议相结合的方式
//基础协议
protocol aProtocol{}
extension aProtocol where Self:UIView{
    //只给遵守myProtocol协议的UIView添加了拓展(强大的协议拓展  可以给协议添加默认实现   面向协议编程的基础)
    func getString() -> String{
        return "string"
    }
}

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

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

3.这也是我在看别人博客的时候看到的,比较少用的在forin循环中使用where语句(相比而言,可能会更加清晰点,个人见解哈)其实有点想guard语法

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

//上面使用where等同于以下的forin循环

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

综上所述,where常见用法完毕,其实还有元组switch中使用where的情况,但是鉴于元组很少用到,所以~
Thank you for watching~

上一篇 下一篇

猜你喜欢

热点阅读