2つの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)
^~~~~~~~~~~~~~~~~~~
等価演算子の独自のオーバーロードを定義する必要がありますか?ScalaやOcamlと同じように、Swiftコンパイラーが自動的に処理することを望んでいました。