0Pricing
Kotlin Academy · Lección

apply y also

Configure objetos y aplique efectos secundarios

apply y also es una lección gratuita de Kotlin Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Kotlin Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Kotlin Academy incluye 4 lecciones en total.

Configurar objetos

apply y also son funciones de ámbito que devuelven el objeto mismo en lugar del resultado de la lambda. Por eso son perfectas para configurar objetos y encadenar operaciones.

La función apply

apply ejecuta un bloque con el objeto como this y devuelve el objeto. Es la herramienta clásica para inicializar un objeto después de crearlo.

fun main() {
    val builder = StringBuilder().apply {
        append("Hello")
        append(", ")
        append("World")
    }
    println(builder.toString())
}

Por qué apply devuelve el objeto

Como apply devuelve el receptor, puede asignar directamente el objeto configurado a una variable.

data class Person(var name: String = "", var age: Int = 0)

fun main() {
    val p = Person().apply {
        name = "Alice"
        age = 30
    }
    println(p)
}

apply usa this

Dentro de apply, el objeto es el receptor, por lo que puede acceder directamente a sus propiedades sin ningún prefijo.

data class Config(var host: String = "", var port: Int = 0)

fun main() {
    val config = Config().apply {
        host = "localhost"
        port = 8080
    }
    println("${config.host}:${config.port}")
}

La función also

also ejecuta un bloque con el objeto como it y devuelve el objeto. Se usa para efectos secundarios, como registrar información o realizar validaciones, que no cambian el objeto.

fun main() {
    val numbers = mutableListOf(1, 2, 3)
    numbers
        .also { println("Before: $it") }
        .add(4)
    println("After: $numbers")
}

also usa it

Como also expone el objeto como it, resulta práctico cuando todavía quiere hacer referencia al this externo o simplemente mantener la referencia explícita.

fun main() {
    val value = 42
        .also { println("Logging value: $it") }
    println(value)
}

apply frente a also

La diferencia refleja la que existe entre run y let:

  • apply usa this y es ideal para configurar propiedades.
  • also usa it y es ideal para aplicar efectos secundarios al objeto.

Ambas devuelven el objeto original.

data class Box(var size: Int = 0)

fun main() {
    val box = Box()
        .apply { size = 5 }
        .also { println("Created box with size ${it.size}") }
    println(box)
}

Encadenar apply y also

Como ambas devuelven el objeto, puede encadenarlas para configurarlo primero y aplicar después efectos secundarios en una cadena fluida.

data class Account(var owner: String = "", var balance: Int = 0)

fun main() {
    val account = Account()
        .apply { owner = "Sam" }
        .apply { balance = 100 }
        .also { println("New account: $it") }
    println(account.balance)
}

also para validaciones

Use also para insertar una comprobación en mitad de una cadena sin interrumpir el flujo.

fun main() {
    val result = listOf(1, 2, 3, 4)
        .filter { it % 2 == 0 }
        .also { check(it.isNotEmpty()) { "No even numbers" } }
    println(result)
}

Devolver el objeto permite crear cadenas

La característica común de apply y also es que nunca interrumpen una cadena, porque siempre devuelven el mismo objeto con el que empezó.

fun main() {
    val text = StringBuilder()
        .apply { append("a") }
        .also { it.append("b") }
        .apply { append("c") }
    println(text)
}

Elegir apply o also

Use apply al inicializar o modificar un objeto mediante sus propios miembros. Use also al realizar una acción que utiliza el objeto, pero no lo configura, como registrar información, depurar o validar.

Comprobación rápida

¿Qué valor devuelven apply y also?

Repaso

Ha aprendido las dos funciones de ámbito que devuelven objetos:

  • apply usa this para configurar un objeto.
  • also usa it para aplicar efectos secundarios a un objeto.

Ambas devuelven el objeto, lo que permite crear cadenas limpias. A continuación agrupará operaciones con with.

Preguntas frecuentes

¿La lección «apply y also» es gratis?

Sí — el texto completo de «apply y also» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Kotlin Academy, actualiza a CoddyKit PRO. El curso de Kotlin Academy incluye 4 lecciones en total.

¿Qué aprenderé en «apply y also»?

Configure objetos y aplique efectos secundarios Practicas Kotlin Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Kotlin Academy?

No se requiere experiencia previa. Kotlin Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «apply y also»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Kotlin Academy?

Sí. Cada lección de Kotlin Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. let y run
  2. apply y also
  3. with
  4. Cómo elegir el adecuado
← Volver a Kotlin Academy