Я хочу проверить равенство двух значений перечисления Swift. Например:
enum SimpleToken {
case Name(String)
case Number(Int)
}
let t1 = SimpleToken.Number(123)
let t2 = SimpleToken.Number(123)
XCTAssert(t1 == t2)
Однако компилятор не скомпилирует выражение равенства:
error: could not find an overload for '==' that accepts the supplied arguments
XCTAssert(t1 == t2)
^~~~~~~~~~~~~~~~~~~
Должен ли я определить собственную перегрузку оператора равенства? Я надеялся, что компилятор Swift справится с этим автоматически, так же, как это делают Scala и Ocaml.