由於Swift很酷的行爲,我在Swift中尋找相當於or
的行爲。Python「或」在Swift中相當於?
事情是這樣的:
variable = value or default
我編寫mine:
func |<T>(a:T?, b:T) -> T {
if let a = a {
return a
}
return b
}
但我在想,如果這個任何默認實現斯威夫特已經存在?
編輯: 感謝答案,我發現在斯威夫特書參考:
無合併運算
的零合併運算(
a ?? b
)解開任意一個,如果它包含一個值如果a
爲零,則返回默認值b
。表達式a
始終是可選類型。表達式b
必須與存儲在a
中的類型匹配。的零合併運算符是簡寫代碼如下:
a != nil ? a! : b
上面的代碼使用三元條件運算符和強迫展開(
a!
)來訪問包裝內部a
值時a
不是nil,和否則返回b
。 nil合併運算符提供了一種更簡潔的方式來以簡明易讀的形式封裝這個條件檢查和解包。 (source)