1.什么是可選(Optionals)類型
Swift 的可選(Optional)類型,用于處理值缺失的情況。可選表示"那兒有一個(gè)值,并且它等于 x "或者"那兒沒有值"。
Swfit語言定義后綴?作為命名類型Optional的簡寫。
以下兩種聲明是相等的:
var optionalInteger: Int?
var optionalInteger: Optional<Int>
可選類型的應(yīng)用:
var myString:String? = nil
if myString != nil {
print(myString)
}else{
print("字符串為 nil")
}
2.強(qiáng)制解析
當(dāng)你確定可選類型確實(shí)包含值之后,你可以在可選的名字后面加一個(gè)感嘆號(hào)(!)來獲取值。這個(gè)感嘆號(hào)表示"我知道這個(gè)可選有值,請使用它。"這被稱為可選值的強(qiáng)制解析(forced unwrapping)。
var c : String? = nil
if c != nil {
print(c!) // 強(qiáng)制解析
} else {
print("字符串c為nil")
}
3.自動(dòng)解析
你可以在聲明可選變量時(shí)使用感嘆號(hào)(!)替換問號(hào)(?)。這樣可選變量在使用時(shí)就不需要再加一個(gè)感嘆號(hào)(!)來獲取值,它會(huì)自動(dòng)解析。
var myString:String!
myString = "Hello, Swift!"
if myString != nil {
print(myString)
}else{
print("myString 值為 nil")
}
4.可選綁定
使用可選綁定(optional binding)來判斷可選類型是否包含值,如果包含就把值賦給一個(gè)臨時(shí)常量或者變量。可選綁定可以用在if和while語句中來對可選類型的值進(jìn)行判斷并把值賦給一個(gè)常量或者變量。
var myString:String?
myString = "Hello, Swift!"
if let yourString = myString {
print("你的字符串值為 - \(yourString)")
}else{
print("你的字符串沒有值")
}