Swift如何使用内联if else条件语句和or(||)操作符



我有一个简单的代码块,我试图找出如何在我的if else语句中添加或操作符

模式可以是allEndPoints、none或direct。我希望如下:如果mode等于allEndPoints或none,那么[]其他任何东西都应该等于[selection]。

我在下面尝试了什么,但是我得到了问题:无法将类型'String'的值转换为预期的参数类型'Bool'

let mode: String = "allEndPoints"
let selection:NSNumber = 501
try manager.add(
toOut: mode == "allEndPoints" || "none" ? [] : [selection],
)

在||之后添加mode == "none">

mode == "allEndPoints" || mode == "none" ? [] : [selection]

你认为||运算符可能做的事情并不是它会做的事情,这并不是Swift所特有的。

endpoint是一个单词。

enum Mode {
case allEndpoints
case direct
case none
}
let mode = Mode.allEndpoints
[.allEndpoints, .none].contains(mode) ? [] : [selection]