我使用以下代碼Person使用覆寫==運算子比較兩個物件:
class Person {
String ssn;
String name;
Person(this.ssn, this.name);
bool operator ==(Object other) {
return identical(this, other) ||
other is Person &&
ssn == other.ssn &&
name == other.name;
}
@override int get hashCode => (ssn name).hashCode;
}
main() {
var bob = Person('111', 'Bob');
var robert = Person('123', 'Robert');
print(bob == robert); // false
}
但是,由于此代碼與Person物件完美配合,有沒有辦法撰寫一個==適用于任何兩種型別的運算子函式來比較它們以檢查它們是否相等?
uj5u.com熱心網友回復:
如果您的問題是如何不為所有類撰寫equals和hashCode實作,那么答案是現在沒有辦法。但是你可以用包來簡化這個程序。例如,您可以使用Equatable包,那么您的類將如下所示:
import 'package:equatable/equatable.dart';
class Person extends Equatable {
String ssn;
String name;
Person(this.ssn, this.name);
@override
List<Object> get props => [name, ssn];
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/402064.html
上一篇:底部溢位1000像素
