在此Swift代码行中进行了比较的内容:.Left = aMovement {print(" Left")}

时间:2016-11-25 19:38:01

标签: enums swift3

有人可以帮助我了解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,所以我不确定单个" ="正在做的。好像应该是" =="检查比较 - 但这会产生错误。

1 个答案:

答案 0 :(得分:2)

从此reference

  

case let x = y模式允许您检查y是否与之匹配   模式x

     

if case let x = y { … }完全等同于写作   switch y { case let x: … }:它只是一个更紧凑的语法   当你只想对一个案例进行模式匹配时很有用 - 如   反对更适合多种情况匹配的开关。

虽然看起来应该使用“==”,但在这种情况下使用模式匹配,它不是。 (没有双关语