Condiciones en las expresiones when en Kotlin 2.1.0
Una de las nuevas funcionalidades de Kotlin 2.1.0
es las condiciones en las expresiones when
, lo que tendría varias ventajas entre las que se incluye:
- Reducir anidaciones
- Evita código repetido
- Mejorar legibilidad
Activar la funcionalidad en Kotlin 2.1.0
Esta funcionalidad se encuentra en preview lo que es necesario activarla explícitamente para poder usarla en Kotlin 2.1.0
. En el fichero build.gradle.kts
añadiremos el siguiente código dentro del bloque de kotlin {}
:
|
|
Uso de condicionales dentro de las ramas de la expresiones when
Para este ejemplo usaremos una sealed interface
para manejar respuestas de un servicio remoto:
|
|
Esta interfaz la implementan Loading, Content y Error para gestionar los distintos estados de una respuesta.
Antes de la nueva funcionalidad
|
|
Como se puede ver en este caso se repite el código que muestra por pantalla Unknown error
además de añadir anidaciones que dificultan la lectura del código.
Usando los nuevos condicionales
Se debe añadir el if
justo después de la condición primaria de la rama, por ejemplo:
|
|
De esta manera no se repite el código que mostraba por pantalla el texto de Unknown error
y además eliminamos las anidaciones facilitando la lectura del código.
En caso de necesitar comprobar varias condiciones en la rama else se podría añadir una rama else if
que controle el flujo de los casos que no cumplen las condiciones anteriores.
|
|
Esto último se puede simplificar usando dos ramas con la misma primera condición de is Response.Error
que a mi parecer queda más simple:
|
|
Conclusión
Con esta nueva funcionalidad se podrá añadir nuevas condiciones sin tener que repetir código y permitirá que las expresiones when
sean más concisas. En la versión 2.1.0
de Kotlin está en modo preview pero se espera que pronto esta nueva funcionalidad sea estable.
Aquí el enlace a la documentación con las novedades de Kotlin 2.1.0 donde se explica la funcionalidad de condicionales en las expresiones when
kotlinlang