原文: https://www.programiz.com/swift-programming/ternary-conditional-operator
三元条件运算符"? :"
是if-else
语句的简写。
三元条件运算符的语法为:
condition ? value1 : value2
这是这样的
- 如果
condition
为true
,则返回value1
。 - 如果
condition
为false
,则返回value2
。
上面的等效代码使用if-else
是:
if condition {
value1
} else {
value2
}
您可能想知道如果条件运算符执行与if-else
语句相同的工作,为什么还要使用条件运算符。 使用它的主要目的是使代码更短,更易读。
对于简单条件,您可以用比if-else
更少的代码在一行中对其进行求值。
print(true && false ? "The condition is true": "The condition is false")
The above equivalent code using if - else is:
if true && false {
print("The condition is true")
} else {
print("The condition is false")
}
当您运行上述程序时,输出将是:
The condition is false
在上述程序中,表达式true && false
的值为false
,因此该语句返回字符串The condition is false
,并且print
语句在控制台中输出该字符串。
如果将表达式更改为true || false
,则该语句的计算结果为true
,并返回字符串The condition is true
,并且print
语句在控制台中输出该字符串。
三元条件运算符也可以用作if-else-if
语句的替代项。
通过使用三元条件运算符,您可以用单行替换if-else-if
代码的多行。
但是,这可能不是一个好主意。
if true && false {
print("Result is \(true && false)")
} else if true || false {
print("Result is \(true || false)")
} else if false || false {
print("Result is \(false || false)")
} else {
print("Default else statement")
}
上面使用三元条件运算符的等效代码为:
print(true && false ? "Result is \(true && false)" : true || false ? "Result is \(true || false)" : false || false ? "Result is \(false || false)" : "The condition is unknown")
当您运行上述程序时,两个输出将是:
Result is true
在上述程序中,尽管if-else-if
的语句通过使用条件运算符替换为单行。 三元条件运算符中使用的表达式确实很难理解。
因此,仅坚持使用三进制条件运算符作为if-else
语句的替代。