本教程屬於Swift系列

可選型别是Swift的一個重要特性。

當你不確定一個值是否存在,你可以將其聲明為可選型别。

可選型别將另一個值包裹在內,具有自己的型别。或者也可能不包裹值。

我們可以在型别後面加上一個問號來聲明一個可選型别,像這樣:

var value: Int? = 10

現在value不是一個Int值,而是一個包裹了Int值的可選型别。

要查找可選型别是否包裹了值,你必須進行解包

可以使用一個感嘆號來進行解包,像這樣:

var value: Int? = 10
print(value!) //10

Swift方法常常返回可選型别。例如,Int型别的初始化器接受一個字符串,並返回一個Int可選型别:

圖片

這是因為它不知道這個字符串能否轉換為一個數字。

如果可選型别不包含值,則評估為nil,並且無法進行解包:

圖片

nil是一個特殊的值,不能賦值給一個變數,只能賦值給可選型别:

圖片

圖片

通常在代碼中使用if語句來解包值,像這樣:

var value: Int? = 2

if let age = value {
 print(age)
}