我可以使用三元条件运算符来生成if {} else {}
语句,如下所示:a ? x : y
或question ? answer1 : answer2
。
是否可以使用此格式来检查a
是true
还是false
,a == nil
还是a != nil
?
更新:这可以说是我职业生涯中最大的脑屁。
答案 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"
答案 2 :(得分:0)
只要语句返回布尔值,就可以使用三元运算符。这里,a == nil或者!= nil返回布尔值,所以'是'你可以使用它。