【发布时间】:2016-05-24 04:09:44
【问题描述】:
display.text = newValue != nil ? "\(newValue!)" : " "
代码的语法是否意味着,让 display.text = newValue,如果它不等于 nil,让它成为 newValue 的可选字符串或“”。这个解释是一个猜测,任何可以提供的帮助将不胜感激
谢谢
【问题讨论】:
标签: swift
display.text = newValue != nil ? "\(newValue!)" : " "
代码的语法是否意味着,让 display.text = newValue,如果它不等于 nil,让它成为 newValue 的可选字符串或“”。这个解释是一个猜测,任何可以提供的帮助将不胜感激
谢谢
【问题讨论】:
标签: swift
它是一个三元运算符。它用于某些条件。如果条件为真,则执行? 之后的部分,否则执行: 之后的部分。在您的情况下,条件是如果 newValue 不等于 nil 然后打开它,否则返回空字符串。
【讨论】:
来自文档
三元条件运算符
三元条件运算符是一个特殊运算符,具有三个 部分,其形式为
question ? answer1 : answer2。它是一个 根据是否评估两个表达式之一的快捷方式 问题是对还是错。如果问题是真的,它评估answer1并返回其值;否则,它评估answer2并返回它的 价值。三元条件运算符是以下代码的简写:
if question { answer1 } else { answer2 }
【讨论】:
意思是
if newValue == nil {
display.text = " "
} else {
display.text = "(newValue!)"
}
如果 newValue 不为零,则 display.text 将为 (newValue!)。
如果要显示newValue的值,
你应该这样写
if newValue == nil {
display.text = " "
} else {
display.text = "\(newValue!)"
}
【讨论】:
关于三元运算符的答案是正确的。
另一种编写方式是使用“nil-coalescing operator”??:
display.text = newValue ?? ""
这意味着如果之前的值?不是 nil,使用未包装的值,否则使用 ?? 之后的值
【讨论】: