En la tabla de modismos vemos que apply recibe un objeto (es decir, no tenemos que usar it
) y devuelve un objeto, por lo que es ideal para aplicar cambios fácilmente al objeto original.
Vamos entonces a hacer un resumen de lo que sabemos basándonos en el significado del propio modismo:
let
vendría a ser “permíteme…” Por eso lo usaremos generalmente para nulos.also
significa “además”. Por eso lo utilizaremos para efectos secundariosapply
es “aplicar”. Eso sumado a que devuelve un objeto parece lógico que su uso sea modificar las propiedades de un objeto.
Por ejemplo, tenemos la siguiente data class
de un círculo con las propiedades radio y color:
Para cambiar sus propiedades podríamos hacer esto:
Sin embargo vemos que tendríamos que poner dos veces circle
. Vamos a ver como quedaría utilizando apply
.
Parece que estuvieras leyendo un texto en inglés en el que indicas:
- Creamos un circulo con 2 y rojo como propiedades y una vez hecho lo mostramos por pantalla.
- Al circulo le aplicamos las siguientes propiedades 3 y azul, y además lo mostramos por pantalla.
Es una buena forma de sustituir al patrón Builder.
Enlaces de interés:
- Modism -Builder-style usage of methods that return Unit Kotlinlang
- Kotlin Standard Functions cheat-sheet – Jose Alcérreca
- Function references in Kotlin – Antonio Leiva