我最近一直关注指南并注意到他们写了一条我之前从未见过的系列,我不知道它叫什么,以及它是如何工作的。
let title: String = isPaused ? "Start" : "Pause"
所以属性isPaused
具有Bool类型,但是questionmark代表什么?当值为Start
或Pause
时,这是某种“切换”语句吗?
最后一个问题,这种操作甚至叫做什么?
谢谢!
答案 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
}