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:
data class Circle (var radius: Int, var color: String)
Para cambiar sus propiedades podríamos hacer esto:
data class Circle (var radius: Int, var color: String) fun main() { //sampleStart val circle = Circle(2, "red").also(::println) circle.radius = 3 circle.color = "blue" println(circle) //sampleEnd }
Sin embargo vemos que tendríamos que poner dos veces circle
. Vamos a ver como quedaría utilizando apply
.
data class Circle (var radius: Int, var color: String) fun main() { //sampleStart val circle = Circle(2, "red").also(::println) circle.apply { radius = 3 color = "blue" }.also(::println) //sampleEnd }
Parece que estuvieras leyendo un texto en inglés en el que indicas:
Es una buena forma de sustituir al patrón Builder.
Enlaces de interés:
En esta lección aprenderás a declarar variables y los tipos básicos.
La mejor forma de aprender algo en esta vida es a base de practicar. Espero…
La principal forma de iniciar una corrutina en Kotlin es con el coroutine builder launch…
Las coroutines en Kotlin vienen a tratar de solucionar todos los problemas y dificultades que…
Con este esquema te puedes guiar a la hora de elegir el modismo o función…
El último que queda por ver es with qué en inglés significa "con". Por lo…