The quiver package provides helper functions hash2
, hash3
, etc., which simplify the task of implementing hashCode
, with some assurance that it works properly under the Dart VM and when compiled to JavaScript.
import 'package:quiver/core.dart';
class Person {
String name;
int age;
Person(this.name, this.age);
bool operator ==(o) => o is Person && name == o.name && age == o.age;
int get hashCode => hash2(name.hashCode, age.hashCode);
}
Also see this post for a slightly lengthier discussion.