【发布时间】:2020-09-25 05:10:23
【问题描述】:
所以我一直在尝试按字段比较两个对象。
我注意到 dart 中没有 equals 方法。但是有identical 函数和== 运算符。
我似乎无法理解为什么没有 equals 方法。如果我想这样做怎么办?
class Name {
String fname;
String lname;
String get firstName => this.fname;
void set firstName(String fname) => this.fname = fname;
String get lastName => this.lname;
void set lastName(String lname) => this.lname = lname;
Name({this.fname, this.lname});
@override
String toString() {
return this.firstName + " " + this.lastName;
}
bool equals(Name n2) {
return this.firstName == n2.firstName && this.lastName == n2.lastName
? true
: false;
}
}
void main(List<String> args) {
Name n1 = new Name();
n1.firstName = "James";
n1.lastName = "Bond";
Name n2 = new Name();
n2.firstName = "James";
n2.lastName = "Bond";
print(n1.equals(n2)); // true
print(identical(n1, n2)); // false
print(n1 == n2); // false
}
我能做些什么而不是让自己成为平等的人。或者 dart 是否希望您手动执行此操作。
【问题讨论】: