Dart 中的平等和同一性

问题描述 投票:0回答:1

我刚刚开始学习 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 identity equality
1个回答
0
投票

来自 Dart 文档

List ==

默认情况下,列表仅等于其自身。即使 other 也是列表,相等比较也不会比较两个列表的元素。

如果您想通过比较两个列表的元素来比较两个列表,您将需要使用类似

listEquals
的内容。

© www.soinside.com 2019 - 2024. All rights reserved.