scala> val x = "a"
x: String = a
scala> val y = "a"
y: String = a
我认为,==
将会通知equals
(价值平等)。
scala> x == y
res18: Boolean = true
But, x eq y
,出乎我意料,显示真实。eq
据我了解,检查object identity
.
scala> x eq y
res19: Boolean = true
Is the Scala
编译器足够聪明,可以返回相同(标识)的 String 对象吗?我相信这个词是实习 http://en.wikipedia.org/wiki/String_interning.
Or, is eq
实际上执行了价值平等吗?
Scala 的 String 实际上是Java.Lang.String http://docs.oracle.com/javase/specs/jls/se7/html/jls-15.html,实际上使用了实习 - 请参阅 Scala参考 https://lampsvn.epfl.ch/trac/scala/browser/scala/trunk/src//library/scala/Predef.scala#L1 -
type String = java.lang.String
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)