【问题标题】:Please Help Me Intepret This Code SWIFT请帮我解释此代码 SWIFT
【发布时间】:2016-05-24 04:09:44
【问题描述】:
display.text = newValue != nil ? "\(newValue!)" : " " 

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

谢谢

【问题讨论】:

    标签: swift


    【解决方案1】:

    它是一个三元运算符。它用于某些条件。如果条件为真,则执行? 之后的部分,否则执行: 之后的部分。在您的情况下,条件是如果 newValue 不等于 nil 然后打开它,否则返回空字符串。

    【讨论】:

      【解决方案2】:

      来自文档

      三元条件运算符

      三元条件运算符是一个特殊运算符,具有三个 部分,其形式为question ? answer1 : answer2。它是一个 根据是否评估两个表达式之一的快捷方式 问题是对还是错。如果问题是真的,它评估answer1 并返回其值;否则,它评估answer2 并返回它的 价值。

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

      if question {
         answer1 
      } else {
         answer2
      }
      

      【讨论】:

        【解决方案3】:

        意思是

        if newValue == nil {
            display.text = " "
        } else {
            display.text = "(newValue!)"
        }
        

        如果 newValue 不为零,则 display.text 将为 (newValue!)。

        如果要显示newValue的值,

        你应该这样写

        if newValue == nil {
            display.text = " "
        } else {
            display.text = "\(newValue!)"
        }
        

        【讨论】:

          【解决方案4】:

          关于三元运算符的答案是正确的。

          另一种编写方式是使用“nil-coalescing operator”??:

          display.text = newValue ?? ""
          

          这意味着如果之前的值?不是 nil,使用未包装的值,否则使用 ?? 之后的值

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2021-05-05
            • 2013-12-22
            • 1970-01-01
            • 2011-03-22
            • 1970-01-01
            • 2014-12-26
            • 2014-12-12
            • 1970-01-01
            相关资源
            最近更新 更多