[英]Using OR operand in a Swift ternary operator
如何在三元運算符中使用OR? 這是我正在嘗試做的事情:
let surname = name == "John" || "Jack" ? "Johnson" : "Smith"
使用括號,並在第二個比較條件中添加name ==
正如我在評論中首先提到的,這是適當的代碼
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
希望這可以幫助
使用括號:
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
這些括號是必要的,因為在將結果“傳遞”給三元運算符之前,您首先要評估name
是John還是Jack 。
此外,與所有類似C語言一樣,您必須提及兩次name
,與您的問題中的示例代碼不同,以便將其與“John”和“Jack”進行比較。
如果你想避免命名名稱兩次,你可以代替寫:
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
后者使用數組的contains()
函數。
另外
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
請注意運營商優先級
您應該使用括號來形成有效條件。
let surname = (name == "John" || name == "Jack") ? "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"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.