В примере кода ниже: почему компилируется 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
    }
}
0
Vince O'Sullivan 22 Апр 2018 в 16:40

1 ответ

Лучший ответ

Условный оператор принимает логическое выражение в качестве первого операнда:

var flip2: Coin {
    return self == .heads ? .tails : .heads
}
6
Martin R 22 Апр 2018 в 13:49