您可以看到animal1
和animal2
是两个不同的实例,但是为什么animal1.age
和animal2.age
是相同的呢? Dart不会为这些变量创建单独的副本吗?
class Animal {
int age = 10;
Animal();
Animal.named();
}
void main() {
var animal1 = Animal();
var animal2 = Animal.named();
print("${identical(animal1, animal2)}"); // prints false
print("${identical(animal1.age, animal2.age)}"); // prints true
}
答案 0 :(得分:0)
Dart整数如果相等则视为相同。整数10
没有两个不同的版本,因此当您询问identical(animal1.age, animal2.age)
时,您实际上只是在检查它们的整数寿命是否相同。
变量不同,它们恰好保持相同(相等且相同)的值,这就是您要检查的值。