Contenido del curso
Configuración del entorno
Hola mundo Kotlin
- 8

Estructura y Funcionalidad de Archivos en un Proyecto Kotlin
03:20 min - 9

Variables en Kotlin: Lectura, Escritura y Constantes
06:30 min - 10

Tipos de Variables y Operaciones en Kotlin
12:31 min - 11

Tipos de Datos y Objetos en Kotlin: Ventajas y Funcionalidades
03:40 min - 12

Operadores y Funciones en Kotlin: Uso y Extensión
01:27 min - 13

Programación Funcional en Kotlin: Paradigmas y Variables Inmutables
02:54 min - 14

Estructuras de Control: Uso de IF en Kotlin
11:55 min - 15

Estructura de Control "When" en Kotlin: Uso y Ejemplos Prácticos
14:20 min
Conceptos básicos de Kotlin
- 16

Bucle while y do-while en Kotlin: Condicionales y Ejecución
06:23 min - 17

Ciclo For y Funciones de Extensión en Kotlin
13:10 min - 18

Null Safety en Kotlin: Evita Errores por Referencias Nulas
04:52 min - 19

Gestión de Tipos Nulables en Kotlin y Buenas Prácticas
06:17 min - 20

Manejo de Excepciones en Kotlin: Try-Catch y Lanzamiento de Errores
10:29 min - 21

Uso del Operador Elvis en Kotlin para Nulables
Viendo ahora
Collections en Kotlin
Libera el potencial de las funciones
- 26

Creación de funciones propias en Kotlin
03:30 min - 27

Creación de Funciones en Kotlin: Uppercase y Lowercase Aleatorios
11:23 min - 28

Parámetros Nombrados y por Defecto en Funciones de Programación
05:06 min - 29

Creación y Uso de Lambdas en Kotlin
08:50 min - 30

Funciones de Alto Orden y Lambdas en Kotlin
07:33 min
Scope functions
- 31

Uso de la función let en Kotlin para variables nulas
03:28 min - 32

Uso de la función "with" en Kotlin para manejar propiedades
02:10 min - 33

Uso de la Función Run para Operaciones en Listas en Kotlin
02:53 min - 34

Uso de la función apply para manejar tipos anulables en Kotlin
04:28 min - 35

Uso de la Función Also en Kotlin para Encadenamiento de Operaciones
02:18 min
Proyecto: Bola 8 mágica
Uso del Operador Elvis en Kotlin para Nulables
Resumen
Cuando trabajas con tipos nullable en Kotlin, es común necesitar un plan B para evitar errores por valores nulos. El operador Elvis es precisamente esa herramienta que te permite asignar un valor por defecto cuando una expresión devuelve null, convirtiendo así un tipo nullable en uno no nullable de forma limpia y concisa.
¿Qué problema resuelve el operador Elvis en Kotlin?
En Kotlin, los tipos nullable permiten que una variable contenga null. Sin embargo, al querer asignar el resultado de una operación sobre un nullable a una variable de tipo no nullable, el compilador marca un error. Esto ocurre porque no puedes asignar un tipo nullable a uno que no lo es directamente.
Por ejemplo, si tienes una variable nombre de tipo String? (que puede ser nula) y quieres obtener la cantidad de caracteres con .length, el resultado será de tipo Int?. Intentar guardar ese valor en una variable Int sin manejar la nulidad provocará un error de compilación [01:10].
¿Cómo se utiliza el operador Elvis con la sintaxis ?:?
El operador Elvis se escribe con el símbolo ?: (signo de interrogación seguido de dos puntos). Se llama así porque visualmente el símbolo se asemeja al copete del cantante americano Elvis Presley [02:00].
La mecánica es sencilla:
- Del lado izquierdo colocas la expresión que podría devolver
null. - Del lado derecho colocas el valor por defecto que se asignará si la expresión es nula.
kotlin val nombre: String? = null val caractresDeNombre: Int = nombre?.length ?: 0 println(caractresDeNombre)
En este ejemplo, nombre?.length devuelve null porque nombre es nulo. Gracias al operador Elvis, en lugar de propagar ese null, se asigna 0 como valor por defecto [02:30].
¿Qué sucede al ejecutar el código?
Al correr el programa, la salida es 0. Esto confirma que:
- La variable
nombreesnull. - Al intentar acceder a
.length, el resultado esnull. - El operador Elvis intercepta ese
nully devuelve el valor0definido a la derecha.
De esta forma, la variable caractresDeNombre siempre tendrá un valor válido de tipo Int, nunca será nula.
¿Por qué es útil convertir de nullable a no nullable?
Esta conversión es fundamental en Kotlin por varias razones:
- Seguridad en tiempo de compilación: evitas excepciones
NullPointerExceptionen tiempo de ejecución. - Código más predecible: cada variable tiene un valor garantizado.
- Compatibilidad: puedes pasar el resultado a funciones que esperan tipos no nullable sin problemas.
El operador Elvis complementa otras herramientas de manejo de nulabilidad como los safe calls (?.) y el bloque try-catch. Mientras que los safe calls permiten acceder a propiedades de forma segura y try-catch captura excepciones, el operador Elvis se enfoca en proveer un valor alternativo de manera directa y expresiva.
Si ya manejas safe calls en tu código Kotlin, agregar el operador Elvis te permitirá escribir lógica más robusta con menos líneas. ¿Has encontrado algún caso donde prefieras usar try-catch en lugar del operador Elvis? Comparte tu experiencia.