Optional可选值
- Optional 是 Swift 的一大特色,也是 Swift 初学者最容易困惑的问题(我当是在这个问题上也是特别头疼)
- 定义变量时,如果指定是
可选的
,表示该变量可以有一个值,也可以是 nil
- 默认值是
nil
- 定义变量时,在类型后面添加一个
?
,表示该变量是可选的
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
- 如果 Optional 值是
nil
,不允许参与计算或者调用方法 - 只有
解包(unwrap)
后才能参与计算 - 在变量后添加一个
!
,可以强行解包
注意:必须要确保解包后的值不是 nil,否则会报错
//: num 可以是一个整数,也可以是 nil,注意如果为 nil,不能参与计算
let num: Int? = 10
//: 如果 num 为 nil,使用 `!` 强行解包会报错
let r1 = num! + 100
//: 使用以下判断,当 num 为 nil 时,if 分支中的代码不会执行
if let n = num {
let r = n + 10
}