operator == 抽象方法

bool operator ==(
  1. Object other
)
override

检查 other 是否具有与当前记录相同的形状以及相等的字段。

只有当记录具有相同的 形状,并且每个字段的值都相等,根据其 == 运算符,与 other 对应字段的值相等时,记录才等于另一个记录。

字段值相等的检查顺序没有保证,并且在找到不等的对应字段后是否还会继续检查进一步字段也不确定。甚至不能保证在一个程序执行过程中顺序的一致性。

如往常一样,对可能违反等价合约的对象应非常小心,如 double.nan,它不等于自身。例如

var pair = ("a", double.nan);
if (pair != pair) print("Oops");

将打印 "Oops",因为 pair == pair 被定义为等于 "a" == "a" & double.nan == double.nan,这是假的。

实现

bool operator ==(Object other);