Dominar las funciones de alcance de Kotlin: let, run, with, apply y también

May 07 2023
Introducción Kotlin se ha convertido en un lenguaje de programación popular para el desarrollo de aplicaciones de Android y más allá, que ofrece una sintaxis moderna, expresiva y concisa. Una de las características poderosas de Kotlin son sus funciones de alcance, que le permiten estructurar y simplificar su código.
Fuente de imagen

Introducción

Kotlin se ha convertido en un lenguaje de programación popular para el desarrollo de aplicaciones de Android y más allá, que ofrece una sintaxis moderna, expresiva y concisa. Una de las características poderosas de Kotlin son sus funciones de alcance, que le permiten estructurar y simplificar su código. Esta publicación de blog se sumergirá en las cinco funciones de alcance más utilizadas en Kotlin: let, run, with, apply y también. Explicaremos su uso, proporcionaremos ejemplos de código y discutiremos las diferencias entre ellos.

dejar

La función 'let' es una función de extensión que se puede aplicar a cualquier objeto. Ejecuta un bloque de código con el objeto como su contexto y devuelve el resultado de la última expresión dentro del bloque. 'let' es útil para realizar operaciones en un objeto anulable y transformar su valor.

Ejemplo:

val name: String? = "John Doe"

val length = name?.let {
    println("Name is $it")
    it.length
} ?: 0

println("Name length: $length")

correr

La función 'ejecutar' es similar a 'dejar', pero se llama en el objeto mismo, en lugar de como una función de extensión. Ejecuta un bloque de código con el objeto como su contexto y devuelve el resultado de la última expresión dentro del bloque.

Ejemplo:

val numbers = mutableListOf(1, 2, 3, 4, 5)

val sum = numbers.run {
    add(6)
    add(7)
    sum()
}

println("Sum: $sum")

con

'with' es similar a 'run', pero no es una función de extensión. En su lugar, toma un objeto como primer argumento y un bloque de código como segundo argumento. Ejecuta el bloque de código con el objeto como su contexto y devuelve el resultado de la última expresión dentro del bloque.

Ejemplo:

val person = Person("John Doe", 30)

val info = with(person) {
    println("Name: $name, Age: $age")
    "Name: $name, Age: $age"
}

println("Person Info: $info")

aplicar

'aplicar' es una función de extensión que se puede aplicar a cualquier objeto. Ejecuta un bloque de código con el objeto como su contexto y devuelve el objeto mismo. 'aplicar' es útil para configurar las propiedades de un objeto y encadenar varias llamadas juntas.

Ejemplo:

val person = Person("John Doe", 30).apply {
    age = 31
    name = "Jane Doe"
}

println("Updated person: Name - ${person.name}, Age - ${person.age}")

también

'también' es similar a 'aplicar', pero devuelve el resultado del bloque en lugar del objeto en sí. Es una función de extensión que se puede aplicar a cualquier objeto y es útil para realizar efectos secundarios o acciones adicionales en un objeto.

Ejemplo:

val updatedName = "Jane Doe".also {
    println("Updating name to $it")
}

val person = Person("John Doe", 30).apply {
    age = 31
    name = updatedName
}

println("Updated person: Name - ${person.name}, Age - ${person.age}")

Conclusión

Las funciones de alcance de Kotlin, a saber, let, run, with, apply y también, pueden ayudarlo a escribir un código más limpio y legible. Comprender sus diferencias y casos de uso le permitirá aprovechar todo su potencial y hacer que su código Kotlin sea más eficiente. Los ejemplos en esta publicación de blog deberían ayudarlo a comenzar a usar estas funciones poderosas en sus proyectos de Kotlin.

  • Documentación de Kotlin sobre funciones de alcance
  • Fuente de imagen