Avatar ·

Ejemplos de uso de run, let, apply, also y with en Kotlin: ¿cuándo usar cada uno?

¡Hola, colegas! He empezado a estudiar Kotlin y no logro entender las funciones de extensión run, let, apply, also y with. En la documentación dice que ayudan a escribir código más limpio, pero siempre me confundo sobre cuál elegir. Por ejemplo, tengo una clase User simple: ```kotlin data class User(var name: String, var age: Int, var email: String) ``` Y quiero crear una instancia, modificar sus campos y luego imprimirla en el log. He probado diferentes opciones: ```kotlin // Opción 1 val user = User("", 0, "") user.name = "Iván" user.age = 25 user.email = "ivan@mail.ru" println(user) // Opción 2 val user = User("", 0, "").apply { name = "Iván" age = 25 email = "ivan@mail.ru" } println(user) ``` Parece que apply funciona, pero cuando necesito devolver el resultado de una transformación, me pierdo. Por ejemplo, si quiero obtener la longitud del nombre después de modificarlo: ```kotlin val length = User("", 0, "").let { it.name = "Iván" it.name.length } ``` O también...