Novedades en Kotlin 1.7.20
Acaba de salir la nueva versión estable de Kotlin, la 1.7.20.
¿Quieres conocer las novedades que trae?
Este contenido está restringido.
HAZTE PREMIUM
para difrutar de los audios y vídeos exclusivos.
Mejoras en el compilador K2
Ya te hablé de K2 en las novedades sobre Kotlin 1.7.0.
Resumiendo: aunque el compilador sigue en alpha, continúan añadiéndole funcionalidades y promete mucho a lo hara de mejorar los tiempos de compilación.
..< operator
Ahora contamos con un operador para poder hacer rangos abiertos.
Ten en cuenta que por el momento es una versión de preview, con lo que puede haber cosas que perfilar.
Es lo equivalente a la notación algebraica [
.
Donde:
[1..3]
es 1, 2, 3
[1..3[
es 1, 2
Y en Kotlin se escribiría así: 1..<3
Y esto seguramente te suene de algo… 😉
Efectivamente, es equivalente a until
.
Desde mi humilde opinión, es algo de agradecer, ya que ganaremos legibilidad en los when
que tengan rangos.
data object
Aparte de las data class
, ahora tenemos también data object
.
Que nos van a ser de mucha utilidad dentro de una sealed class
.
La diferencia entre un object
y un data object
, es que se añade un útil toString()
. Con lo que podremos tener mejores visualizaciones cuando estemos depurando.
Ejemplo:
package soy.gabimoreno object FooObject data object FooDataObject fun main() { println(FooObject) // soy.gabimoreno.FooObject@1f32e575 println(FooDataObject) // FooDataObject }
Sutil… pero qué duda cabe que es más legible. 💪🏼
Como curiosidad, comentarte que esto no es algo que se les haya ocurrido ahora mismo, sino que parece ser que parte como idea de un issue de hace 9 años.
Una vez más, ten en cuenta que esto de momento está en su fase experimental
.
Generic inline classes
Siguen mejorando añadiendo la notación @JvmInline
, con la que nos ayuda a hace el código más seguro en tiempo de compilación.
Resto de features
En este artículo sólo he nombrado unas pocas de las novedades de esta nueva versión. Puedes ver la documentación oficial donde hay muchísimo más detalle.
Y quizá te interese también conocer las novedades que trae Kotlin 1.9.0.