003-if let / var连用

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")
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容