簡體   English   中英

在Swift三元運算符中使用OR操作數

[英]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"

這些括號是必要的,因為在將結果“傳遞”給三元運算符之前,您首先要評估nameJohn還是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM