在java中,一個基本類型在沒有賦值的情況下,系統會爲自動爲其分配默認值,而一個引用的默認值則是null。而null通知情況下會造成空指針異常,導致奔潰。
在Swift,爲了避免這種惡劣的情況,提供了可選類型(optional
),用來表示值可能存在,可能缺省。這樣在擼代碼的時候,會提醒程序員注意。
var resultCode: Int? = 404
// resultCode包含一個可選的 Int 值 404
resultCode= nil
// resultCode現在不包含值
在類型後面帶?表示該變量或者常量是可選類型,要麼存在對應類型的值,要麼是nil
聲明一個可選常量或者變量但是沒有賦值,它們會自動被設置爲 nil
resultCode:Int?
用if來判斷是否值,在有值得情況下,使用!最爲後綴來強制使用。
if resultCode != nil {
print("resultCode has an integer value of \(resultCode!).")
}
在編碼爲了簡潔,用可選綁定,簡潔代碼
if let result= Int(resultCode ) {
print("\(resultCode )' has an integer value of \(result)")
} else {
print("\(resultCode )' could not be converted to an integer")
}
在resultCode
有值得情況會走if
分支,並值賦值給result
,可在改分支使用。如果沒有值,則走else
分支。
另外一種情況,可選類型賦值後會一直有值,如果每次使用都需要判斷或者解析,代碼量非常繁瑣和無聊,所以可以在變量或者常量聲明時帶上!後綴。
resultCode:Int!