La igualdad de identidad para los arguments de los types Int e Int está en desuso

Solo fyi, esta es mi primera pregunta sobre StackOverflow y soy realmente nuevo en Kotlin.

Mientras trabajo en un proyecto que es completamente Kotlin (ver 1.1.3-2), veo una advertencia en el siguiente código (con los comentarios para ustedes muchachos curiosos):

// Code below is to handle presses of Volume up or Volume down. // Without this, after pressing volume buttons, the navigation bar will // show up and won't hide val decorView = window.decorView decorView .setOnSystemUiVisibilityChangeListener { visibility -> if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN === 0) { decorView.systemUiVisibility = flags } } 

La advertencia es para la visibilidad y View.SYSTEM_UI_FLAG_FULLSCREEN === 0 , y dice que la igualdad de identidad para los arguments de los types Int e Int está en desuso .

¿Cómo debería cambiar el código y por qué estaba en desuso en primer lugar (por el conocimiento)?

Puede cambiar el código utilizando la igualdad estructural en su lugar, como se muestra a continuación:

 // use structual equality instead ---v if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) { decorView.systemUiVisibility = flags } 

¿Por qué no sugieren usar la igualdad referencel ? Puedes ver mi respuesta aquí .

Por otro lado, cuando usa igualdad de reference / identidad, puede devolver false , por ejemplo:

 val ranged = arrayListOf(127, 127) println(ranged[0] === ranged[1]) // true println(ranged[0] == ranged[1]) // true 

 val exclusive = arrayListOf(128, 128) // v--- print `false` here println(exclusive[0] === exclusive[1]) // false println(exclusive[0] == exclusive[1]) // true 
  • Extienda la comprobación de Mockito para que Kotlin no funcione (de manera "kotlin")
  • Métodos estáticos como en la aplicación de Android con kotlin
  • Error de puntero nulo al hacer reference a RecyclerView en un fragment con Kotlin
  • La function Kotlin requiere nada, pero se define como un tipo diferente
  • Kotlin DialogFragment editText editable always null
  • Kotlin RC NoClassDefFoundError
  • Android Studio 3 no puede build fragments de kotlin
  • Kotlin: ¿Cuál es el uso de la class sin cuerpo?
  • Por qué los numbers que aceptan nulos no son para preservar la identidad
  • Problemas al intentar generar la aplicación Kotlin con Android Studio
  • Llamadas seguras en Kotlin con Array es confuso