1. 可選型的聲明 ( 可選型的值可以是實值或者nil )
顯示聲明方法是在變量類型后面加上 弛房?(值可以是nil)
var name: String? = "jack"
隱式聲明方法是在變量后面加上 6獭(具體使用時必須確定是有值得)
var name: String! = nil
name = "jack"
2. 可選型強制解包
強制解包在可選型后面加上!就可以
var name: String? = "jack"
"他的名字是:" + name!
強制解包值如果為nil就會出錯
var name: String? = nil
"他的名字是:" + name!
3. if let 判斷解包多個可選項不為nil
多個解包中間可以用","隔開媒咳,還可以用where來同時判斷其他條件
解包完的值只能在{ } 中使用涩澡,在{ } 外面使用又變成可選型了
如果值是nil 則不可以解包
var errorMessge: String? = "信息"
var errorCode: String? =" 404 "
if let errorCode = errorCode , errorMessage where errorCode == "404" {
"兩個值都不為nil"
}
4. Optional Chaining 和 Nil-Coalesce
//uppercaseString 是把字符串變?yōu)榇髮?var errorMessage:String? = "Hello"
//嘗試解包 如果值是nil 嘗試解包失敗就不執(zhí)行后面的方法
errorMessage?.uppercaseString
//強制解包 如果值是nil 強制解包會報錯
errorMessage!.uppercaseString
Optional Chaining ( 可選型鏈條 XXX?.XXXX?.XXXXX )
返回值是nil
var errorMessage:String? = nil
if let errorMessage = errorMessage?.uppercaseString {
errorMessage
}
返回值是自定義的默認值
Nil-Coalesce (let 變量名 = 可選型 ?? "如果是nil給的默認值")
var errorMessage:String? = nil
let message = errorMessage ?? "默認值"
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者