let, also y funciones de ámbito
Trabaje con valores anulables
let, also y funciones de ámbito es una lección gratuita de Android Academy en CoddyKit. Esta es la lección 3 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 Android Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Android Academy incluye 4 lecciones en total.
¿Qué son las funciones de ámbito?
Las funciones de ámbito permiten ejecutar un bloque de código en el contexto de un objeto. Hacen que el código sea más conciso, especialmente al trabajar con valores anulables.
Esta lección se centra en let y also, las dos funciones más útiles para la seguridad frente a valores nulos, y en cómo se relacionan con el operador de llamada segura.
La función let
let ejecuta un bloque y pasa el objeto como it. Devuelve lo que devuelva el bloque.
Resulta útil para transformar un valor o limitar el ámbito de un nombre temporal.
fun main() {
val length = "Kotlin".let { it.length }
println(length) // prints: 6
}let para la seguridad frente a nulos
Combine ?. con let para ejecutar un bloque solo cuando un valor no sea nulo. El bloque se ejecuta una vez, con el valor como it.
Si el valor es nulo, el bloque se omite por completo.
fun main() {
val name: String? = "Ada"
name?.let {
println("Hello, " + it)
}
}Se omite cuando es nulo
Cuando el receptor es nulo, ?.let no hace nada. El bloque nunca se ejecuta.
Este programa no imprime nada porque name es nulo.
fun main() {
val name: String? = null
name?.let {
println("Hello, " + it)
}
}Cambiar el nombre de it
Puede asignar al parámetro un nombre más claro en lugar de it. Esto mejora la legibilidad en bloques más largos.
Use una flecha para asignarle un nombre explícitamente.
val name: String? = "Bo"
name?.let { value ->
println(value.uppercase())
}La función also
also también pasa el objeto como it, pero devuelve el objeto original en lugar del resultado del bloque.
Es ideal para efectos secundarios, como registrar información, mientras se mantiene el valor sin cambios en una cadena.
fun main() {
val n = 5.also { println("got " + it) }
println(n) // prints: 5
}Valor devuelto por let y also
La diferencia clave es que let devuelve el resultado del bloque, mientras que also devuelve el objeto original.
Elija let para transformar y also para inspeccionar el valor sin modificarlo.
val a = "hi".let { it.length } // a = 2 (Int)
val b = "hi".also { it.length } // b = "hi" (String)also para el registro
Como also devuelve el objeto, puede integrarse en una cadena para inspeccionar un valor durante el flujo.
Aquí registramos un valor anulable solo si está presente y después seguimos utilizándolo.
fun main() {
val token: String? = "abc"
val result = token?.also { println("token: " + it) }
println(result)
}let con Elvis
Combine ?.let con el operador Elvis para proporcionar una alternativa cuando el valor sea nulo.
El bloque produce un resultado cuando el valor está presente; la parte de Elvis gestiona el caso nulo.
fun main() {
val raw: String? = null
val out = raw?.let { it.trim() } ?: "empty"
println(out) // prints: empty
}Elegir una función de ámbito
Para la seguridad frente a nulos, use let cuando quiera transformar o utilizar un valor no nulo dentro de un bloque. Use also cuando quiera realizar un efecto secundario, pero deba conservar el objeto original.
Ambas funciones se combinan de forma natural con el operador de llamada segura para evitar errores por valores nulos.
user?.let { save(it) } // transform/use
user?.also { log(it) } // side effect, keep userUn ejemplo combinado
Este programa usa ?.let para crear un mensaje y Elvis como alternativa. Muestra el flujo habitual de Kotlin con seguridad frente a nulos.
No aparecen comprobaciones explícitas de valores nulos y, aun así, el código es completamente seguro.
fun main() {
val city: String? = "Goreme"
val label = city?.let { "City: " + it } ?: "Unknown"
println(label)
}Comprobación rápida
Compruebe su comprensión de let y also.
Resumen
Las funciones de ámbito ejecutan un bloque en el contexto de un objeto. let pasa el objeto como it y devuelve el resultado del bloque; also pasa it y devuelve el objeto original.
Con ?.let, puede actuar sobre un valor solo cuando no es nulo. A continuación, reunirá estas ideas para evitar por completo las excepciones NullPointerException.
Preguntas frecuentes
¿La lección «let, also y funciones de ámbito» es gratis?
Sí — el texto completo de «let, also y funciones de ámbito» 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 Android Academy, actualiza a CoddyKit PRO. El curso de Android Academy incluye 4 lecciones en total.
¿Qué aprenderé en «let, also y funciones de ámbito»?
Trabaje con valores anulables Practicas Android 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 Android Academy?
No se requiere experiencia previa. Android 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 3 de 4.
¿Cuánto tiempo toma la lección «let, also y funciones de ámbito»?
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 Android Academy?
Sí. Cada lección de Android 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
- Tipos anulables frente a no anulables
- Llamadas seguras y Elvis
- let, also y funciones de ámbito
- Evitar NullPointerExceptions