2014-11-01 38 views
1

在Swift中使用可選項時,似乎有兩種方法來檢查可選類型是否爲nil在Swift中檢查可選項的首選方法

var item: String? = "apple" 

// Approach A 
if item != nil { 
    "item is \(item!)" 
} else { 
    "no item" 
} 

// Approach B 
if let x = item { 
    "item is " + x 
} else { 
    "no item" 
} 

請問我用哪種方法檢查可選項?

+0

沒有。爲什麼這很重要? – CodaFi 2014-11-01 20:23:53

回答

5

他們是等價的,但最好使用:

  • let x = item(可選綁定)時,你實際需要和使用展開的值
  • item != nil當你只需要知道,如果它不是nil,但你不需要它的解包值

通過可選綁定解包有成本,所以如果你不需要的值沒有理由提取它並分配給一個變量。另一方面,如果您需要該值,則通過可選綁定僅解包一次會更好(並避免使用強制解包!

0

選項一評估您的選項是否爲空,並允許您自動解包它使用感嘆號。

第二個選項將可選值綁定到指定變量,如果您的可選項不爲null。

2

看看這樣說:

對於選項A,該系統具有解開可選的兩倍。一次檢查是否不爲零,並且一次處理!

使用選項B,系統只需在執行任務時打開可選件一次。

在任何特定情況下,請使用減少編譯器打開可選項的次數的代碼。