如何在三元運算符中使用OR?這裏就是我想要做的事:在Swift三元運算符中使用OR操作數
let surname = name == "John" || "Jack" ? "Johnson" : "Smith"
如何在三元運算符中使用OR?這裏就是我想要做的事:在Swift三元運算符中使用OR操作數
let surname = name == "John" || "Jack" ? "Johnson" : "Smith"
使用括號,並在你的第二個比較條件添加name ==
,當我把第一次的評論,這是撥碼
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
希望這有助於
使用括號:因爲你要評估第一,如果name
要麼約翰或傑克前
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
這些括號是必須的將結果「傳遞」給三元操作員。
此外,與所有類似於C的語言一樣,爲了將其與「John」和「Jack」進行比較,您不得不提及name
兩次,與您問題中的示例代碼不同。
如果你想避免命名名兩次,你可以代替寫:
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
後者利用陣列的功能。
請注意運算符優先級的
您應該使用括號來形成有效的條件。
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
或者
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
除了括號,你也可以使用的情況下array.contains有很多的名字,可以使支架碼長和不可讀的。
let name = "Three"
let nameList = ["One", "Two", "Three", "John", "Jack", "Vlatko"]
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
let surnameAlternate = nameList.contains(name) ? "Johnson" : "Smith"
let surname =(name ==「John」|| name ==「Jack」)? 「約翰遜」:「史密斯」 –
'(「約翰」||「傑克」) - 不會工作嗎? – josephmbustamante
相關:[如何比較一個值與多個值 - Swift](https://stackoverflow.com/questions/32750139/how-to-compare-one-value-against-multiple-values-swift) –