Dart支持==
表示平等,identical(a, b)
表示身份.Dart不再支持===
语法.
如果要判断对象是否"相等",请使用==
表示相等.您可以在类中实现==
方法来定义相等的含义.例如:
class Person {
String ssn;
String name;
Person(this.ssn, this.name);
// Define that two persons are equal if their SSNs are equal
bool operator ==(other) {
return (other is Person && other.ssn == ssn);
}
}
main() {
var bob = Person('111', 'Bob');
var robert = Person('111', 'Robert');
print(bob == robert); // true
print(identical(bob, robert)); // false, because these are two different instances
}
请注意,a == b
的语义是:
a
或b
是null
,则返回identical(a, b)
a.==(b)
使用identical(a, b)
判断两个变量是否引用同一实例.identical是dart:core
中的顶级函数.