La identidad de KotlinEquals no funciona como se esperaba

De acuerdo con la reference de kotlin, este fragment de código debe imprimir "verdadero"

val a: Int = 10000 print(a identityEquals a) 

Pero cuando lo bash (la versión es 0.12.1218), imprime "falso". ¿Por qué?

29/07/2015 ACTUALIZACIÓN

Si lo dejamos en [-128 ~ 127], imprime "verdadero". Como dijo Andrey, debería usar === .

identityEquals se depreciará pronto, use ===

Encontré la explicación de Andrey Breslav.

La razón es que bajo las capuchas Int no es un tipo de reference: se representa por una primitiva int, pero cuando se llama a identityEquals, ¿quién firma es Any? .identityEquals (Any?), Ambos operandos se ponen en una caja, y como resultado tenemos dos objects diferentes Arreglaremos esto presentando sobrecargas de primitivas de identidad para Java.

Hasta ahora todavía no se ha solucionado. La reference oficial debería explicar esto. Me ha preocupado por varias horas.

  • ¿Puedo crear un método de extensión Kotlin para agregar una suscripción rxJava a una suscripción compuesta?
  • Posibilidad de llamar a un método estático de Java en Kotlin
  • El uso de más es igual al operador con bytes
  • ¿Cómo se ejecuta el file kotlin en Android Studio 3.0 Canary 4?
  • Cómo usar Kotlin en proyectos de App Engine usando Gradle
  • Daga inyectar en superclass y subclass
  • Usar el valor del argumento pnetworkingeterminado en la llamada a la function Kotlin
  • Mapeo a less que la exception
  • ¿Puedo integrar y usar anuncios admob en un proyecto de Android usando Kotlin?
  • Procesamiento de annotations con kotlin-maven-plugin
  • Android create listitem / object con información guardada de otra actividad