Optional

作者: 小万叔叔 | 来源:发表于2017-03-15 15:28 被阅读4次

    guard 的好处

        //Optional 本质上是一个枚举,.none(nil) , .some(T)
        //有值会自动升级为.some , nil 会自动升级为 .none
        //注意guard 的用法,如果要在多处用同一个 unwarping
        let a: Int? = 1
        guard let nextA = a else {
            return
        }
        //以后都可以用nextA, 不用一直unwraping
    

    闭包行为

        //对比一下和JS的闭包行为, swift 闭包捕获的是值,而 JS 捕获的是对象
        var array: [Closure] = []
        for i in 0...5 {
           array.append({ print(i)})
        }
        array[0]()
        array[1]()
        array[2]()
        array[3]()
    
    let funcArray = []
    
    // for (let i in [0, 1, 2]){ 
    //如果变成let 则是0,1, 2,var 则是2,2,2
    for (var i in [0, 1, 2]){
        funcArray[i] = ()=>{
            console.log(i);
        }
    }
    
    funcArray[0]();
    funcArray[1]();
    funcArray[2]();
    

    Never 关键字

    //Never 意味着永远不会正确返回
    func returnNever(_ input: Int) -> Never {
        guard input > 0 else {
            fatalError()
        }
    
        fatalError()
    }
    

    相关文章

      网友评论

        本文标题:Optional

        本文链接:https://www.haomeiwen.com/subject/tyglnttx.html