003-if let / var连用

2016-11-13  本文已影响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")
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读