请帮助我解释此代码SWIFT

时间:2016-05-24 04:09:45

标签: swift

display.text = newValue != nil ? "\(newValue!)" : " " 

代码的语法是否意味着,让display.text = newValue,如果它不等于nil,则将它作为字符串或“”的newValue可选。这种解释是猜测,任何可以提供的帮助将不胜感激

谢谢

4 个答案:

答案 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值,否则使用后面的值?