我希望这段代码能够工作。
我有一个枚举,其中 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(.Up):
print("up")
case .Move(.Right(let distance)):
print("right by", distance)
你的代码
case .Move(let direction) where direction == .Right:
无法编译,因为==
默认情况下仅定义为
枚举without相关值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)