2014-06-30 23 views
2

Swift編程指南中提到「您也可以使用帶有可選綁定的隱式解包可選,在單個語句中檢查並解包其值。爲什麼你需要使用可選綁定,當這個值已經解包了?選項綁定是否會再次打開它?隱式解包可選綁定

回答

2

調用隱式解包與調用常規可選項一樣!之後。它仍然可以保存一個零值並在它爲零時調用它會導致運行時錯誤,所以如果不確定它是否爲零,則使用if let可選綁定。

var myOptional: Int! = nil 

10 + myOptional //runtime error 

if let myUnwrapped = myOptional{ 
    10 + myOptional //safe 
} 
+0

只要調用像第二行代碼那樣的可選項,就會自動解開可選的零。如果讓檢查,然後解開。 – connor

+0

所以可選的綁定基本解開它再次?在這種情況下,你可以跳過,如果讓myUnwrapped,並檢查是否myOptional,因爲你不使用myUnwrapped? – Boon

+0

這只是一個更安全的展開方式 – connor

2

爲什麼你需要使用可選的當值已經 解開

這是已經解開綁定。隱式解包可選只是一個可選項。當在中使用某些表達式(後綴表達式,其中可選綁定具有效果的相同表達式)時,它隱含地解開。但除此之外,它只是一個可選的,而不是未包裝的。您可以像使用其他選項一樣使用可選綁定。