給定2個變量類型(int, int)我該如何檢查它們是否代表相同的值? E.g. var a = (1, 2);
var b = (1, 2);
var c = a == b; // Error CS0019 Operator '==' cannot be applied to operands of type '(int, int)' and '(int, int)'
這是什麼意思是
python documentation提到,如果您覆蓋__eq__並且該對象是不可變的,則還應該覆蓋__hash__以使該類可以正確哈希。 在實踐中,我這樣做時,我經常與代碼落得像 class MyClass(object):
def __init__(self, a, b):
self.a = a
self.b = b
def __eq__(sel
所以,我創建了一個數據型方程的交替情況 data Expr a = Const a
| Expr a :*: Expr a
我定義了一個實例Eq對這種數據類型 instance (Eq m) => Eq (Expr m) where
Const a == Const b = a == b
(a :*: b) == (c :*: d) = ((a == c) &&