我刚刚开始学习 Dart,出现了一个问题,一个我自己无法找到或制定的明确答案。 我正在尝试找出
==
和 identity()
之间的区别。使用此代码片段的示例:
void main() {
var a = [1, 2, 3];
var b = a;
var c = [1, 2, 3];
print(identical(a, b)); // true
print(identical(a, c)); // false
print(a == c); // false
}
我在Python方面有一点经验,这段代码给了我可以理解的结果:
>>> a = [1, 2, 3]
>>> b = [1, 2, 3]
>>> a == b
True
>>> a is b
False
在 Dart 中我并不清楚。如果基本数据类型上的
identity
和 ==
给出相同的结果,那么为什么它们不同 😅 ?如果我不熟悉 Dart 中的类,它们之间有区别吗?
如果您能提供任何有助于我解决问题的说明,我将不胜感激。
来自 Dart 文档
List ==
:
默认情况下,列表仅等于其自身。即使 other 也是列表,相等比较也不会比较两个列表的元素。
如果您想通过比较两个列表的元素来比较两个列表,您将需要使用类似
listEquals
的内容。