在 Swift 三元运算符中使用 OR 操作数
Using OR operand in a Swift ternary operator
如何在三元运算符中使用 OR?这是我正在尝试做的事情:
let surname = name == "John" || "Jack" ? "Johnson" : "Smith"
使用括号:
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
这些括号是必需的,因为您想首先评估 name
是 John 还是 Jack 在 [=31 之前=] 三元运算符的结果。
此外,就像在所有类 C 语言中一样,您必须提及 name
两次,这与您问题中的示例代码不同,以便将其与 "John" 和 "Jack".
如果你想避免命名 name 两次,你可以这样写:
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
后者利用了数组的contains()
功能
使用括号,并在你的第二个比较条件中添加name ==
,正如我在评论中首先指出的那样,这是适当的代码
let surname = (name == "John" || name == "Jack") ? "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"
如何在三元运算符中使用 OR?这是我正在尝试做的事情:
let surname = name == "John" || "Jack" ? "Johnson" : "Smith"
使用括号:
let surname = (name == "John" || name == "Jack") ? "Johnson" : "Smith"
这些括号是必需的,因为您想首先评估 name
是 John 还是 Jack 在 [=31 之前=] 三元运算符的结果。
此外,就像在所有类 C 语言中一样,您必须提及 name
两次,这与您问题中的示例代码不同,以便将其与 "John" 和 "Jack".
如果你想避免命名 name 两次,你可以这样写:
let surname = ["John", "Jack"].contains(name) ? "Johnson" : "Smith"
后者利用了数组的contains()
功能
使用括号,并在你的第二个比较条件中添加name ==
,正如我在评论中首先指出的那样,这是适当的代码
let surname = (name == "John" || name == "Jack") ? "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"