isEqual function
Implementation
bool isEqual(Object? a, Object? b) {
if (a == null || b == null) return a == b;
if (a.runtimeType != b.runtimeType) return false;
// Map对比
if (a is Map) {
if (a.keys.length != (b as Map).keys.length) return false;
for (final key in a.keys) {
if (!b.containsKey(key) || !isEqual(a[key], b[key])) {
return false;
}
}
return true;
}
// List对比
if (a is List) {
if (a.length != (b as List).length) return false;
for (int i = 0; i < a.length; i++) {
if (!isEqual(a[i], b[i])) return false;
}
return true;
}
// 基本类型直接比较
return a == b;
}