美文网首页
Swift中的可选变量

Swift中的可选变量

作者: windgo | 来源:发表于2015-05-26 19:23 被阅读1006次

    Swift中的可选变量

    optional翻译成中文是”可选择的”, 在Swift里它标识一个变量可能为nil.
    作为一个曾经搞过C++/C#/Java的人, 理解了十几遍, 才基本理解这个概念. 只能说, 苹果你太牛逼了.

    普通变量

    普通变量呢, 必须有初始值.
    好有一比, 作为一个富二代, 爹很有钱, 生下来就有车了, 必须得有车!

    var 座驾:汽车=汽车("奥迪")
    

    普通变量用起来是这样的:

    座驾.发动()
    座驾.加速()
    座驾.甩尾()
    座驾.刹车()
    

    可选变量

    大部分人投胎技术不行, 不是生下来就有车, 但是万一咱将来有车了呢? 所以刚开始没车的咋办呢? 苹果帮你想到了, 你可以声明一个可选变量, 初始如果你不设置的话, 初始值默认为空.

    var 座驾:汽车? 
    

    然后你买了车

    座驾=汽车("迈拓"")
    

    以后使用这个变量的时候, 就得这样使用:

    座驾!.发动()
    座驾!.加速()
    座驾!.甩尾()
    座驾!.刹车()
    

    我擦, 我的车为啥和人家的不一样! 后面都有一个"!" 每次都用"!"来取实际值, 是不是看上去很傻.
    别担心, 苹果帮你想到了. 怎么能一眼被人看出屌丝的本质呢?
    所以可以这样声明一个可选变量:

    var 座驾:汽车!
    

    然后买了车:

    座驾=汽车("迈拓"")
    

    以后使用这个变量的时候, 就可以这样使用了:

    座驾.发动()
    座驾.加速()
    座驾.甩尾()
    座驾.刹车()
    

    是不是和富二代家的车看起来一样了! 但是, 你的车还是奥拓...
    而且, 如果你不设置值, 会报nil异常的

    可选变量的好处

    可选变量的唯一好处是可以处理nil的状态. 苹果应该是趋向于让你使用普通变量的.

    可选链

    class 天窗{
        var 宽度=20公分
    }
    class 汽车{
        天窗:天窗?
    }
    var 座驾:汽车?
    let 天窗宽度=座驾?.天窗?.宽度
    

    天窗宽度也许是nil,
    也许是20公分, 如果是20公分, 那就是货真价实的20公分, 不是可选值哦

    判断语句的语法糖

    使用下面的方式, 可以免去nil判断.

    if let 我的座驾=座驾{
        座驾.启动()
    } 
    

    看到没, 不用!了, "我的座驾" 是正常变量, 不是可选变量.

    显示转换

    var  座驾:汽车?
    座驾=汽车("奥拓)
    座驾?.甩尾()
    let 真座驾无双=座驾!
    真座驾无双.甩尾()
    

    转换之后, 变成正常变量, 不是可选变量.

    相关文章

      网友评论

          本文标题:Swift中的可选变量

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