美文网首页
Swift - 可选类型

Swift - 可选类型

作者: 汪小喵 | 来源:发表于2016-12-22 11:40 被阅读42次

    在实际开发过程中,经常会遇到一个数据可能有值,也可能没有值的情况。针对这种情况,Swift增加了可选类型(Optional)。可选类型可以生命所有的数据类型。
    可选类型的声明
    在声明常量或变量时,在类型后面加问号(?),就表示它是可选的。
    (1)可选常量:

    let a:Int?
    

    可选常量没有默认值,在使用之前必须设置初值。

    可选常量必须设置初值

    (2)可选变量:

    var x:Int?
    

    可选变量如果不给赋初值,它的默认值为 nil

    可选变量默认为nil 可选变量赋初值的打印结果

    注意:Swift中的nil和Objective-C中的nil不一样。在OC中,nil表示空指针,只能用于对象类型,在Swift中,没有指针的概念,nil的含义是一个值,表示值的缺失,可用于任何类型。

    解包
    可选类型不能直接参与计算,参与计算时需要进行解包。解包的方法是在可选项后加感叹号(!)。

    let x:Int? = 10
    print(x! + 2)
    

    在解包前,可选项必须有值


    可选项没有值进行计算会报错

    隐式解析
    可选类型每次解包很麻烦,可以采用隐式解析的方法,在声明时将数据类型后的问号改成叹号。

    let x:Int! = 10
    var y:Int!= 20
    

    如果变量的值可能为nil,不要用隐式解析的方法

    空合并运算符
    可选类型如果为空是不能参与运算的,所以在使用之前要对其进行判断,空合并运算符可以简化运算:

    空合并运算符相当于算目运算符:a! = nil ? a! : b。空合并运算符更加简洁,可读性增强。

    使用空合并运算符需要注意,必须符合以下两个条件:

    • 表达式 a 必须是可选类型
    • 默认值b的数据类型必须与 a 的值 数据类型一致

    OK,这就是可选类型的声明和基本用法,明天分享控制流。

    相关文章

      网友评论

          本文标题:Swift - 可选类型

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