美文网首页
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连用

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

  • swift

    1.if let 和if var 连用的语法,在赋值的同时进行判断。可能为nil的情况 2.guard let e...

  • Swift if let / var 连用语法与guard l

    1.if let / var 连用语法 事例1:在viewDidLoad中调用方法,并传入两个参数,输出结果调用:...

  • Swift基础语法

    let 和 var let 标识常量var 表示变量 swift :自动推导,var/let的类型是由“=” ...

  • 第二章 let 和 const 命令

    // let 与 var /* 一 */ { let a =12; var b =10; } //...

  • var、let

    一、区别 var声明的变量①没有块的概念,可以跨块访问,但不能跨函数访问;②作用域在该语句所在的函数内,且存在变量...

  • 关于ES6的let命令

    1、let的基本用法以及let和var的区别 (1) let与var一样是用来声明变量的,与var的区别是let所...

  • ES6之let/const/var

    let与var let声明的变量有严格局部作用域,var会越域 let只能声明一次变量,var可以多次声明 let...

  • es6中的let和const(变量和常量)

    let和constlet变量和var一样const是常量 let和var的区别 上面的代码let会报 错,var不...

  • swift

    用let来声明常量 let radiuds = 10; 用var来声明变量 var age = 20 var x ...

网友评论

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

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