【问题标题】:How do I use negative numbers in a range in Swift?如何在 Swift 的范围内使用负数?
【发布时间】:2015-01-03 15:18:11
【问题描述】:

我有以下代码:

switch self.score
        {
        case 1:
            self.score = self.score - 2
        case -10...-10000: // ! Expected expression after unary operator
            println("lowest score")
            self.score = -10
        default:
            self.score = self.score - 1
        }

我也试过case -1000...-10:。两者都得到相同的错误! Expected expression after unary operator

我真正想做的是case <= -10:,但如果没有收到此错误Unary operator cannot be separated from its operand,我不知道该怎么做。

我不明白什么?

【问题讨论】:

  • 试试用括号括起来吧?
  • 不幸的是,这也不起作用。

标签: swift switch-statement operators negative-number


【解决方案1】:

在 switch case 的上下文中,a ... b 是一个“闭合区间”并且开始 必须小于或等于间隔的结尾。加号或减号也必须是 与... 之间用空格(或括号中的数字)隔开,所以两者都是

case -10000...(-10):
case -10000 ... -10:

工作。

case <= -10: 可以用 Swift 编写 使用“where 子句”:

case let x where x <= -10:

Swift 4 开始,这可以写成“单边范围表达式”:

case ...(-10):

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-13
  • 2015-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多