美文网首页
003-if let / var连用

003-if let / var连用

作者: 紫荆秋雪_文 | 来源:发表于2016-11-13 20:11 被阅读17次

    1、前面说过了强行解包是有风险的,所以我们引用了??来进行解包来规避风险,其实还可以通过判断来解包的

    1-1、通过??来进行解包

    func demo1() {
            let oName: String? = "小明"
            let oAge:Int? = nil//= 20
            //如果想要输出:小明20
            //使用if来判断oName,oAge是否有值
            print((oName ?? "") + String((oAge ?? 0)))
        }
    

    1-2通过if判断来进行解包

    func demo() {
            let oName: String? = "小明"
            let oAge:Int? = 20
            //如果想要输出:小明20
            //使用if来判断oName,oAge是否有值
            if oName != nil && oAge != nil {
                print(oName! + String(oAge!))
            } else {
                print("oName 或者 oAge 为 nil")
            }
        }
    

    1-3通过if let 连用来解包

    func demo2() {
            let oName: String? = "小明"
            let oAge:Int? = 20
            //如果想要输出:小明20
            if let name = oName,
               let age = oAge {
                //进入{}里面的name,age一定有值
                print(name + String(age))//输出结果:小明20
            } else {
                print("oName 或者 oAge 为 nil")
            }
            
        }
    

    小结:if let 连用语法,目的就是判断值。不是单纯的 if。if let 连用,判断对象的值是否为 nil,{}内一定有值,可以直接使用,不需要解包

    2、if var连用

    if var 连用,在{}可以对值进行修改

    func demo3() {
            let oName: String? = "小明"
            let oAge:Int? = 20
            //如果想要输出:小明20
            if var name = oName,
                let age = oAge {
                //修改名字
                name = "小红"
                print(name + String(age))
                //输出结果:小红20
            } else {
                print("name 或 age 为 nil")
            }
        }
    

    相关文章

      网友评论

          本文标题:003-if let / var连用

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