快速三元操作这是什么“?”符号

时间:2018-05-18 10:51:27

标签: ios swift

我最近一直关注指南并注意到他们写了一条我之前从未见过的系列,我不知道它叫什么,以及它是如何工作的。

let title: String = isPaused ? "Start" : "Pause"

所以属性isPaused具有Bool类型,但是questionmark代表什么?当值为StartPause时,这是某种“切换”语句吗?

最后一个问题,这种操作甚至叫做什么?

谢谢!

5 个答案:

答案 0 :(得分:5)

被称为三元运算符,并且不仅仅是 Swift 编程语言的功能,三元运算符是支持几乎所有主要的编程语言,你可以在这里阅读Ternary Operator Wikipedia Reference

基本上你在一行中做 if else 语句

let title: String = isPaused ? "Start" : "Pause"与此

等效
 let title: String
 if isPaused {
     title = "Start"
 } else {
     title = "Pause"
 }

答案 1 :(得分:1)

基本上是If和else条件。 (三元运营商) 因此,如果 isPaused true ,则标题将等于String Start,否则它将等于String Pause < / p>

答案 2 :(得分:1)

它是三元条件运算符,它是一种内联if。

您可以在Ternary Conditional Operator下看到完整描述: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/BasicOperators.html

答案 3 :(得分:1)

这是

的短手
var title = "Pause"
if isPaused  {
   title = "Start"
}

答案 4 :(得分:0)

这是编程中使用的一种运算符。我们将其称为条件运算符。条件运算符是一个特殊的运算符,包含三个部分,其形式为问题 answer1 answer2 。它是根据问题是真还是假来评估两个表达式之一的捷径。如果问题为true,则会评估 answer1 并返回其值;否则,它会评估 answer2 并返回其值。

三元条件运算符是下面代码的简写:

if question {
   answer1
} else {
   answer2
}