通過(guò)在類(lèi)型后面加一個(gè) ? 來(lái)將變量聲明為 Optional 的卵凑。
如果不是 Optional 的變量,那么它就必須有值。
如果可能沒(méi)有值的話(huà)好唯,我們使用 Optional 并且將它設(shè)置為 nil 來(lái)表示沒(méi)有值。
//num 不是一個(gè) Int
var num: Int?
//num 沒(méi)有值
num = nil //nil
//num 有值
num = 3 //{Some 3}
//如果不聲明為Optional燥翅,又設(shè)為nil時(shí)則會(huì)報(bào)錯(cuò) Nil cannot be assigned to type 'Int'
var count:Int = 0
count = nil
如果可選值為nil
骑篙,則條件判斷為false
,花括號(hào)中的代碼會(huì)被跳過(guò)森书。反之靶端,可選值去包裝并且賦給let
后面的常量,使得去包裝的值可以在代碼塊內(nèi)部訪(fǎng)問(wèn)凛膏。
var num: Int? = 3
if let n = num {
//have a num
n++
} else {
//no num
n--
}