有人可以帮助我了解Swift3中此代码段最后一行的内容吗?
enum Movement {
case Left
case Right
case Top
case Bottom
}
let aMovement = Movement.Left
// so I get all this so far ... then this:
if case .Left = aMovement { print("move left") }
已经定义了aMovement,所以我不确定单个" ="正在做的。好像应该是" =="检查比较 - 但这会产生错误。
答案 0 :(得分:2)
从此reference:
case let x = y
模式允许您检查y
是否与之匹配 模式x
。写
if case let x = y { … }
完全等同于写作switch y { case let x: … }
:它只是一个更紧凑的语法 当你只想对一个案例进行模式匹配时很有用 - 如 反对更适合多种情况匹配的开关。
虽然看起来应该使用“==”,但在这种情况下使用模式匹配,它不是。 (没有双关语)