我希望这段代码可以使用。
我有一个枚举,其中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'和'_'
类型的操作数
有办法做到这一点吗?
答案 0 :(得分:6)
实际上很容易:)
case .Move(.Up):
print("up")
case .Move(.Right(let distance)):
print("right by", distance)
您的代码
case .Move(let direction) where direction == .Right:
无法编译,因为默认情况下仅定义==
枚举没有关联值。