switch 开关 vs 三元运算符

Switch switch vs ternary operator

在下面的示例代码中:为什么 flip1 编译但 flip2 不编译?

enum Coin {
   case heads
   case tails

    var flip1: Coin {
        switch self {
        case .heads: return .tails
        case .tails: return .heads
        }
    }

    var flip2: Coin {
        return self.heads ? .tails : .heads
    }
}

条件运算符将 布尔值 表达式作为第一个操作数:

var flip2: Coin {
    return self == .heads ? .tails : .heads
}