Swift может автоматически синтезировать реализации Equatable
для структур и перечислений.Точно так же я хочу, чтобы enum также автоматически соответствовал протоколу Comparable
.
Вот что я сделал:
enum RoyalRank: UInt8 {
case emperor = 3
case king = 2
case duke = 1
}
let e = RoyalRank.emperor
let k = RoyalRank.king
print(e > k)
Но, конечно, он не скомпилируется.Я получил следующую ошибку:
error: cannot convert value of type 'RoyalRank' to expected argument type 'UInt8'
print(e > k)
^
.rawValue
Можно ли как-нибудь сделать так, чтобы перечисление соответствовало Comparable
протоколу автоматически ?