在Swift三元运算符中使用OR操作数
问题描述:
如何在三元运算符中使用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://*.com/questions/32750139/how-to-compare-one-value-against-multiple-values-swift) –