Aprender a manejar variables en Kotlin es el primer paso para construir programas que respondan a datos reales: nombres, números, porcentajes y estados lógicos. Aquí entenderás cómo declararlas, cuándo usar cada tipo y cómo convertir valores entre ellos, todo aplicado a un ejemplo de bandeja de correos.
Una variable es un espacio de memoria que guarda un dato concreto. Puede ser texto, un número entero, un decimal o un valor verdadero/falso. Y en Kotlin, la forma en que la declares define si tu programa será flexible o estricto con esos datos.
¿Cuál es la diferencia entre val y var en Kotlin?
Kotlin te ofrece dos palabras reservadas para crear variables, y elegir entre ellas no es un detalle menor: define si tu dato puede cambiar o no a lo largo del programa [00:36].
Con val declaras una variable inmutable. Una vez le asignas un valor, el compilador no te deja reasignarlo. Si lo intentas, verás el error val cannot be reassigned.
kotlin
val nombreUsuario = "Juan"
var nombreUsuario2 = "Carlos"
nombreUsuario2 = "Pablo" // válido
Con var, en cambio, trabajas con una variable mutable: puedes reasignarla cuantas veces necesites. La inmutabilidad de val es una señal al compilador de que ese dato no cambiará, lo que hace tu código más seguro y predecible.
¿Cuándo usar val y cuándo var en Kotlin? Usa val cuando el valor no va a cambiar (nombres de usuario, constantes). Usa var cuando necesites reasignar (contadores, estados que evolucionan).
¿Cuáles son los tipos de datos básicos en Kotlin?
A lo largo del ejemplo aparecen los cuatro tipos que más usarás en programas reales [04:30].
- String: cadenas de texto entre comillas, como
"Juan" o el asunto de un correo.
- Int: números enteros, positivos o negativos, como
emailsNoLeidos = 5.
- Float: números con punto decimal, terminados en
F, como 75.5F para un porcentaje.
- Boolean: valores lógicos
true o false, ideales para banderas como esUrgente.
Existen variantes de mayor capacidad: el tipo Double maneja decimales mucho más grandes que Float, y el Long almacena enteros gigantes, del orden de miles de millones [07:00]. La elección depende del rango de valores que esperas y del consumo de memoria que estés dispuesto a asumir.
¿Qué es la inferencia de tipos en Kotlin?
Kotlin puede deducir el tipo de una variable a partir del valor que le asignas. A esto se le llama inferencia de tipo de dato [05:50].
kotlin
val totalEmails: Int = 150 // declaración explícita
val totalEmails = 150 // Kotlin infiere que es Int
Ser explícito es útil cuando quieres postergar la inicialización o dejar clara la intención del código. Cuando declaras el tipo sin asignar valor, estás separando la declaración de la inicialización, algo común al trabajar con datos que llegarán después.
¿Cómo concatenar variables en un mensaje con Kotlin?
Imprimir variables sueltas funciona, pero el código gana claridad cuando las integras dentro de un mensaje. Kotlin lo resuelve con el signo $ antes del nombre de la variable, dentro de un string [03:50].
kotlin
println("Usuario: $nombreUsuario, emails: $emailsNoLeidos")
// Resultado: Usuario: Juan, emails: 3
Esta técnica se llama string templating y reemplaza la concatenación tradicional con +. Es más legible y evita errores cuando combinas varios valores.
¿Cómo convertir tipos de datos en Kotlin?
En programación real es común recibir un texto desde la consola y necesitar operarlo como número. Kotlin ofrece funciones de conversión directas [08:20].
numero.toString() convierte un Int en String.
texto.toInt() convierte un String numérico en Int.
valor.toFloat() convierte un entero en decimal para cálculos más precisos.
Aunque en consola el cambio puede no ser visible, internamente cambia cómo el programa trata ese dato. Y aquí viene un detalle clave: si divides dos enteros, Kotlin asume que el resultado también será entero, y trunca los decimales.
kotlin
val leidos = 15
val totales = 20
println(leidos / totales) // imprime 0, no 0.75
Para obtener el resultado real, al menos uno de los operandos debe ser Float. El compilador siempre opera tomando como referencia el tipo de mayor tamaño.
¿Por qué 15 dividido 20 da 0 en Kotlin? Porque ambos son enteros y el compilador devuelve un entero, descartando los decimales. Convierte uno a Float con .toFloat() y obtendrás 0.75.
¿Cómo calcular un porcentaje combinando variables en Kotlin?
El ejercicio práctico de la clase reúne todo lo anterior: declarar una variable inmutable con val, dos mutables con var y calcular el porcentaje de correos enviados [11:30].
kotlin
val nombre = "María"
var recibidos = 6
var enviados = 4
val porcentajeEnviados = (enviados.toFloat() / (recibidos + enviados)) * 100
println("$nombre tiene enviados $porcentajeEnviados % de sus correos")
Los paréntesis agrupan la suma para que se ejecute antes de la división, igual que en una calculadora. La conversión de enviados a Float evita el truncamiento, y la multiplicación por 100 transforma la proporción en porcentaje. El resultado: María tiene enviados 40% de sus correos.
El contexto de tu programa decide qué tipo necesitas en cada momento. Un contador pide Int, un porcentaje pide Float, una bandera pide Boolean y una etiqueta pide String. Cuéntame en los comentarios qué tipo de variable se te complica más al elegir.