三元条件运算符为零/不为零

时间:2016-09-12 17:45:02

标签: ios swift

我可以使用三元条件运算符来生成if {} else {}语句,如下所示:a ? x : yquestion ? answer1 : answer2

是否可以使用此格式来检查atrue还是falsea == nil还是a != nil

更新:这可以说是我职业生涯中最大的脑屁。

3 个答案:

答案 0 :(得分:8)

你可以这样做:

(a == nil) ? x : y

(括号不是必需的,但可以使代码更清晰。)

如果你想要更混乱的话,你可以这样做:

a.map { _ in x } ?? y

答案 1 :(得分:3)

  a != nil ? a! : b
  

上面的代码使用三元条件运算符和强制解包(a!)来访问a a不是nil时包含的值,否则返回b。 nil合并运算符提供了一种更简洁的方式来以简洁易读的形式封装此条件检查和解包。

示例:

let defaultColorName = "red"
var userDefinedColorName: String?   // defaults to nil

var colorNameToUse = userDefinedColorName ?? defaultColorName
// userDefinedColorName is nil, so colorNameToUse is set to the default of "red"

参考:Apple documentation

答案 2 :(得分:0)

只要语句返回布尔值,就可以使用三元运算符。这里,a == nil或者!= nil返回布尔值,所以'是'你可以使用它。