美文网首页ios专题
六、Swift3.0之if let和guard let

六、Swift3.0之if let和guard let

作者: ZhengYaWei | 来源:发表于2017-02-22 23:47 被阅读152次

对于一些可选值,一般最好经过判断之后确定其不为nil的情况下,再去用!强制解包,这是可以通过if来进行判断。但是过多使用if判断会让代码看起来很凌乱。Swift中提供了if let和guard let解决这个问题。
先看if let

func demo() {
        let name: String? = "老王"
        let age: Int? = 10
        //if let 连用,判断对象的值是否为nil,如果不为nil,直接执行if中的代码
        if let nName = name,
            let nAge = age {
            //这里的name和age一定有值
            print(nName + String(nAge))
            //注意:这里的nName和nAge仅在作用域内有效
        }else{
            print("name或age有一个为空")
        }
    }

这是guard let。

 func demo() {
       let name: String? = "老王"
       let age: Int? = 10
       guard let nName = name, let nAge = age else{
            print("name或age有一个为空")
            return
        }
        //代码到此,nName和nAge一定有值。
        //如果只是直接使用if let会凭空多了一个分支,guard let可以降低分支的层次。一般在解包的时候guard let用的相对比较频繁。
        print(nName + String(nAge))
    }

相关文章

网友评论

    本文标题:六、Swift3.0之if let和guard let

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