【发布时间】:2016-06-15 12:07:53
【问题描述】:
我希望这段代码能够工作。
我有一个枚举,其中的 case Direction.Right 采用距离参数。
enum Direction {
case Up
case Down
case Left
case Right(distance: Int)
}
现在是另一个可以采用 Direction 参数的枚举。
enum Blah {
case Move(direction: Direction)
}
let blah = Blah.Move(direction: Direction.Right(distance: 10))
当我打开 Blah 枚举时,我希望能够像这样有条件地打开 Move.Right...
switch blah {
case .Move(let direction) where direction == .Right:
print(direction)
default:
print("")
}
但我得到了错误...
二元运算符“==”不能应用于“Direction”和“_”类型的操作数
有没有办法做到这一点?
【问题讨论】:
-
你的
case .Move(let direction) where direction == .Up:对我来说很好用。 -
@MartinR 嗯.. 我得到了
Binary operator == cannot be applied to operands of type Direction and _。可能是一个干净和构建的问题。我去看看谢谢。 -
@MartinR 啊,似乎如果您将
distance添加到Direction 中就会出错。让我编辑...
标签: ios swift enums switch-statement