【问题标题】:using swift, I'm simply trying to turn an else block in to a ternary operator使用 swift,我只是想将 else 块转换为三元运算符
【发布时间】:2022-07-07 05:34:54
【问题描述】:
   if bulletsOn == true {
            bullets -= 0.003
        } else {
            bullets += 0.001
        }

当我像这样输入三元形式时,编译器会出错。

    bulletsOn ? bullets -= 0.003 : bullets += 0.001

错误:结果值在 '? :' 表达式有不匹配的类型 '()' 和 'CGFloat'

【问题讨论】:

  • bullets = bulletsOn ? bullets - 0.003 : bullets + 0.001
  • bullets += bulletsOn ? 0.001 : -0.003
  • 问题是缺少括号。 bulletsOn ? (bullets -= 0.003) : (bullets += 0.001)。顺便说一句bulletsOn ? bullets -= 0.003 : (bullets += 0.001) 也可以

标签: swift ternary


【解决方案1】:

三元只是有趣的数学运算,因此您需要分配一个值 2、一个条件和可以分配给它的两个值,但是您的两个条件甚至不返回值,所以

bullets += bulletsOn ? -0.003 : 0.001

会工作

【讨论】:

    猜你喜欢
    • 2021-02-22
    • 1970-01-01
    • 2021-03-17
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 2018-10-25
    相关资源
    最近更新 更多