我已经通过dart codelab 进行了迭代,并偶然发现了这个代码片段:
class EmailAddress {
String address;
EmailAddress(this.address);
@override
bool operator ==(Object other) =>
identical(this, other) ||
(a) other is EmailAddress &&
(b) runtimeType == other.runtimeType &&
address == other.address;
....
(a) 行和 (b) 行有什么区别?对我来说,他们似乎也在做同样的事情。或者更一般地问:使用 is-operator 和使用对象的 runtimeType 属性来检查 dart 中的运行时类型有什么区别?