在阅读一些代码时,我注意到一些开发人员使用按位异或运算符^
来生成对象的哈希码。
这样做有什么意义?与其他获取/生成对象哈希码的方法相比,它是否具有一些优势?
这是一个代码示例。
class Student {
final String name;
final int age;
Student(this.name, this.age);
@override
bool operator ==(other) {
return (other is Student) && other.name == name && other.age == age;
}
@override
int get hashCode => age.hashCode ^ name.hashCode; // <-- Here
}