方法之间有什么区别##
and hashCode
?
无论哪个类别或哪个类别,它们似乎都输出相同的值hashCode
我使用的超载。谷歌也没有帮助,因为它找不到符号##
.
的“子类”AnyVal
不守规矩properly从哈希的角度来看:
scala> 1.0.hashCode
res14: Int = 1072693248
当然,这是对以下内容的调用:
scala> new java.lang.Double(1.0).hashCode
res16: Int = 1072693248
我们可能更喜欢它是:
scala> new java.lang.Double(1.0).##
res17: Int = 1
scala> 1.0.##
res15: Int = 1
鉴于int
1 也是double
1.当然在Java中不会出现这个问题。没有它,我们就会遇到这样的问题:
Set(1.0) contains 1 //compiles but is false
Luckily:
scala> Set(1.0) contains 1
res21: Boolean = true
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)