void main() {
var person1 = Person(id: 6, name: "Rene", age: 18);
var person2 = Person(id: 6, name: "Poul", age: 19);
var person3 = person1.copyWith(age: 18);
print(person1);
print(person2);
print(person3);
print(person1 == person2); //return false
print(person1 == person3); //return true
}
class Person {
int id;
String name;
int age;
Person({required this.id, required this.name, required this.age});
Person copyWith({int? id, String? name, int? age}) => Person(
id: id ?? this.id,
name: name ?? this.name,
age: age ?? this.age,
);
@override
String toString() => 'Person(id: $id, name: $name, age: $age)';
@override
bool operator ==(Object other) =>
identical(this, other) ||
other is Person &&
runtimeType == other.runtimeType &&
id == other.id &&
name == other.name &&
age == other.age;
@override
int get hashCode => id.hashCode ^ name.hashCode ^ age.hashCode;
}