Llamadas seguras y Elvis
Operadores ?. y ?:
Llamadas seguras y Elvis 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.
Trabajo sencillo con valores anulables
Escribir if (x != null) en todas partes resulta demasiado verboso. Kotlin ofrece dos operadores concisos para los valores anulables:
- la llamada segura
?. - el operador Elvis
?:
El operador de llamada segura
La llamada segura ?. llama a un método o lee una propiedad solo si el valor no es null. De lo contrario, toda la expresión se evalúa como null.
No se produce ningún fallo ni es necesario realizar una comprobación explícita.
fun main() {
val name: String? = "Kotlin"
println(name?.length)
}Llamada segura con null
Cuando el receptor es null, la llamada segura se detiene y devuelve null en lugar de lanzar una excepción.
Esta es la diferencia clave con una llamada normal mediante el operador punto.
fun main() {
val name: String? = null
println(name?.length)
}Encadenamiento de llamadas seguras
Las llamadas seguras se pueden encadenar. Si algún elemento de la cadena es null, todo el resultado se convierte en null.
Esto evita comprobaciones de null profundamente anidadas.
fun main() {
val text: String? = "hello world"
val result = text?.uppercase()?.substring(0, 5)
println(result)
}El operador Elvis
El operador Elvis ?: proporciona un valor alternativo cuando el lado izquierdo es null.
Léalo así: use el valor izquierdo o, de lo contrario, el derecho.
fun main() {
val name: String? = null
val display = name ?: "Guest"
println(display)
}Elvis con un valor real
Si el lado izquierdo no es null, el operador Elvis simplemente lo devuelve e ignora el valor alternativo.
El valor alternativo solo se usa cuando falta el valor.
fun main() {
val name: String? = "Sam"
val display = name ?: "Guest"
println(display)
}Combinación de llamada segura y Elvis
Estos operadores se suelen usar juntos. Una llamada segura puede producir null y Elvis proporciona un valor predeterminado.
Este es uno de los modismos más habituales de Kotlin.
fun main() {
val name: String? = null
val length = name?.length ?: 0
println(length)
}Elvis para retornos anticipados
El lado derecho de Elvis puede ser return o throw. Es una forma clara de salir anticipadamente cuando falta un valor.
Si id es null, la función retorna inmediatamente.
fun process(id: String?) {
val safeId = id ?: return
println("Processing " + safeId)
}
fun main() {
process("A-100")
process(null)
println("done")
}Llamada segura con let
Combine ?. con let para ejecutar un bloque solo cuando el valor no sea null.
Dentro del bloque, it hace referencia al valor no nulo.
fun main() {
val name: String? = "Kotlin"
name?.let {
println("Length is " + it.length)
}
}Números predeterminados con Elvis
Elvis resulta útil para convertir números anulables en valores predeterminados seguros antes de realizar operaciones aritméticas.
En este caso, un recuento null se convierte en 0, por lo que las operaciones matemáticas siempre funcionan.
fun main() {
val count: Int? = null
val total = (count ?: 0) + 5
println(total)
}Unificación de conceptos
Juntos, estos operadores sustituyen las comprobaciones de null voluminosas:
?.llama únicamente cuando el valor no es null?:proporciona un valor alternativo cuando el valor es null- El encadenamiento y
letpermiten expresar flujos complejos de forma concisa
fun main() {
val input: String? = null
val name = input?.trim()?.uppercase() ?: "UNKNOWN"
println(name)
}Comprobación rápida
Compruebe cuánto ha comprendido sobre las llamadas seguras y Elvis.
Repaso
Ha aprendido los dos operadores esenciales para valores anulables:
- Llamada segura
?.devuelve null en lugar de provocar un error - Elvis
?:proporciona un valor alternativo - Se combinan fácilmente con
lety los retornos anticipados
A continuación verá el operador !! y por qué debe utilizarse con cuidado.
Aprende Kotlin con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 51
- Lecciones
- 203
Preguntas frecuentes
¿La lección «Llamadas seguras y Elvis» es gratis?
Sí — el texto completo de «Llamadas seguras y Elvis» 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 «Llamadas seguras y Elvis»?
Operadores ?. y ?: 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 «Llamadas seguras y Elvis»?
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
- Tipos anulables y no anulables
- Llamadas seguras y Elvis
- El operador !!
- Tipos de plataforma