display.text = newValue != nil ? "\(newValue!)" : " "
代码的语法是否意味着,让display.text = newValue,如果它不等于nil,则将它作为字符串或“”的newValue可选。这种解释是猜测,任何可以提供的帮助将不胜感激
谢谢
答案 0 :(得分:1)
它是一家三元运营商。它适用于某些条件。如果condition为true,则它执行?
之后的部分,否则执行:
之后的部分。在你的情况下,条件是如果newValue不等于nil
然后解包它否则返回空字符串。
答案 1 :(得分:1)
来自文档
三元条件运算符
三元条件运算符是一个有三个的特殊运算符 部分,采用
question ? answer1 : answer2
形式。它是一个 用于根据是否评估两个表达式之一的快捷方式 问题是真是假。如果问题属实,则评估answer1
并返回其价值;否则,它会评估answer2
并返回它 值。三元条件运算符是下面代码的简写:
if question { answer1 } else { answer2 }
答案 2 :(得分:0)
意味着
if newValue == nil {
display.text = " "
} else {
display.text = "(newValue!)"
}
如果newValue不是nil,则display.text将为(newValue!)。
如果你想显示newValue的值,
你应该写那个
if newValue == nil {
display.text = " "
} else {
display.text = "\(newValue!)"
}
答案 3 :(得分:0)
关于三元运算符的答案是正确的。
另一种写这个的方法是使用" nil-coalescing运算符" ??
:
display.text = newValue ?? ""
这意味着如果之前的价值?不是nil,使用那个unwrapped值,否则使用后面的值?