ฉันต้องการทดสอบความเท่าเทียมกันของสองค่า Enum ของ 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 ทำ