1、可选类型的声明
在声明常量或者变量时,在类型的后面加问号(?),即表示它是可选类型。声明可选变量格式如下(可选变量显而易见)
var 变量名:变量类型? = 变量值
var a:Int? = 3
可选类型的意思就是该变量可以为nil
tips:
可选类型的标准写法
var a:Int?
var a:Optional<Int>
2、解包
可选项不能直接参与计算,要使用可选项的值就必须对它进行解包。解包方法是在可选项后边加感叹号(!),表示取得可选项的值,如果没有值,则编译器报错。
eg:
let a:Int? = 3
print(a!)
3、隐式可选类型
只需将定义常量或变量时候的?
改为!
let str:String? = "可选"
print(str!)
let str1:String! = "隐式可选"
pring(str)
隐式可选类型本质上就是可选类型,所以除了不需要每次强制解包取值之外,其它特征是与可选类型一样的。
4、空合并运算符
不多说,看代码自己体会
假如let a:Int?
那么a ?? b
等价于a != nil ? a! : b