将可选枚举类型的变量与if语句中的两个特定情况进行比较

时间:2017-07-11 13:49:26

标签: swift if-statement enums optional

我定义了一个Swift枚举如下:

enum Direction {
    case up
    case down
    case left
    case right
}

然后我创建并启动这种类型的变量:

var direction: Direction = .up

和相应的可选类型的变量:

var optionalDirection: Direction? = .up

现在我想在if语句的条件下检查特定情况:

1。比较可选的单个案例✅

if optionalDirection == .up {
    print("Optional direction is 'up'.")
}

打印:

  

Optional direction is 'up'.

2。比较非可选的两种情况✅

if direction == .down || direction == .up {
    print("Direction is vertical.")
}

打印:

  

Direction is vertical.

3。将可选项与两个案例进行比较❌

然而,

if optionalDirection == .down || optionalDirection == .up {
    print("Optional direction is vertical.")
}

抛出错误:

  

error: invalid character in source file
  error: expected '{' after 'if' condition

为什么示例 3 失败?

有没有办法在不使用相当不直观的模式匹配语法(if case ...)的情况下修复它?

0 个答案:

没有答案