加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

scala – Array类型的奇怪行为

发布时间:2020-12-16 21:33:42 所属栏目:安全 来源:网络整理
导读:scala List(1,2,3) == List(1,3)res2: Boolean = truescala Map(1 - "Olle") == Map(1 - "Olle")res3: Boolean = true 但是当尝试使用Array做同样的操作时,它不起作用.为什么? scala Array('a','b') == Array('a','b')res4: Boolean = false 我使用了2.8.0.
scala> List(1,2,3) == List(1,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.

解决方法

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

这与Java的数组相等性一致,使用Object.Equals,所以它比较引用.

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

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

或deepEquals,它已经在2.8中弃用,所以改为使用:

Array('a','b').deep.equals(Array('a','b').deep)

array equality有一个很好的讨论.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读