2016-09-12 47 views
0

我可以使用三元條件運算符來表示if {} else {}這樣的語句:a ? x : yquestion ? answer1 : answer2三元條件運算符爲零/不爲零

是否有可能使用這種格式來檢查,而不是atruefalsea == nila != nil


UPDATE:這可以說是我職業生涯中最大的大腦放屁。

+1

a ==零和a!=零導致真或假,所以是的。它看起來像這樣:a == nil? x:y – ohr

+0

'a?'是'a == true?'的簡寫形式,因此您可以檢查任何符合等式的等式。你有沒有使用過遊樂場? ;-) – vadian

+0

我不是一個Python開發人員,但假設有一種方式是使用終端/命令以交互方式測試這種事情。或者你可以使用:https://www.python.org/shell/ –

回答

5

你可以這樣做:

(a == nil) ? x : y 

(而且不需要括號,但可能使代碼更清晰)

,如果你想你可以做這個事情更加混亂:

a.map { _ in x } ?? y 
+0

這就是我一直在尋找的東西。感謝搶劫。 – chicobermuda

1
a != nil ? a! : b 

上面的代碼使用三元條件運算r並強制解包(a!)以訪問a不是零時包裝的值,否則返回b。 nil合併運算符提供了一種更簡潔的方式來以簡明易懂的形式封裝這個條件檢查和解包。

例如:

let defaultColorName = "red" 
var userDefinedColorName: String? // defaults to nil 

var colorNameToUse = userDefinedColorName ?? defaultColorName 
// userDefinedColorName is nil, so colorNameToUse is set to the default of "red" 

參考:Apple documentation

+0

@Hamish:是的,它是檢查字符串是否爲零! – Lion

0

可以,只要你的語句返回布爾值,使用三元運算符。在這裏,== nil或!= nil返回布爾值,所以'是'你可以使用它。

相關問題