【发布时间】:2011-01-29 16:24:28
【问题描述】:
据我了解,Scala 的== 定义了两个对象的自然平等。
我预计Array(0,1,2) == Array(0,1,2) 比较自然平等。例如,检查数组的所有元素在与另一个数组的对应元素比较时是否返回 true。
人们告诉我,Scala 的 Array 只是一个 Java [],它只比较身份。重写Array'sequals 方法来比较自然相等不是更有意义吗?
【问题讨论】:
-
我不熟悉 Scala。但是,您确定 == 没有比较数组是否是别名(对内存中同一对象的引用)吗?我假设这是一种可能性,因为您提到它与 Java 数组有关。
-
这是一个不幸的情况,正如其他答案所描述的那样,但是当您知道您正在处理 Array 时,您可以使用 sameElements 并获得您想要的答案,同时避免所有的包装、装箱和迂回。
标签: arrays scala equals equality