"Olle") r-6ren">
gpt4 book ai didi

scala - 带有 `==`运算符的Array类型的奇怪行为

转载 作者:行者123 更新时间:2023-12-04 03:05:43 24 4
gpt4 key购买 nike

scala> List(1,2,3) == List(1,2,3)

res2: Boolean = true

scala> Map(1 -> "Olle") == Map(1 -> "Olle")

res3: Boolean = true

但是,当尝试对Array进行相同操作时,它无法正常工作。为什么?
scala> Array('a','b') == Array('a','b')

res4: Boolean = false

我使用了2.8.0.RC7和2.8.0.Beta1-prerelease。

最佳答案

因为数组的“等于”的定义是它们引用相同的数组。

这与使用Object.Equals的Java数组相等性保持一致,因此它比较引用。

如果要检查成对元素,请使用 sameElements

Array('a','b').sameElements(Array('a','b'))

deepEquals(已在2.8中弃用),因此请使用:
Array('a','b').deep.equals(Array('a','b').deep)

array equality上有一个很好的Nabble讨论。

关于scala - 带有 `==`运算符的Array类型的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3213368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com