Kotlin的identityEquals没有按预期工作

Pet*_*hao 1 kotlin

根据kotlin 参考,此代码段应打印"true"

val a: Int = 10000
print(a identityEquals a)
Run Code Online (Sandbox Code Playgroud)

但是当我尝试它(版本是0.12.1218)时,它打印"假".为什么?

2015/07/29更新

如果在[-128~127]中输入,则打印"true".正如安德烈所说,应该使用===.

Pet*_*hao 5

我找到了安德烈·布雷斯拉夫的解释.

原因是在引擎盖下Int不是引用类型:它由一个原始int表示,但是当你调用identityEquals时,谁的签名是Any?.identityEquals(Any?),它们都被操作系统装箱,结果我们有两个不同的对象.我们将通过为Java原语引入identityEquals的重载来解决这个问题.

到目前为止,它仍然没有得到修复.官方参考应该解释这一点.这困扰了我好几个小时.