Dominar las variables y tipos de datos en Kotlin es fundamental para programar con confianza y claridad. Aquí conocerás cómo gestionarlas, diferenciando entre mutabilidad e inmutabilidad y accediendo a los tipos más usados en esta herramienta. Todo enmarcado en ejemplos reales y ejercicios útiles que ayudan a comprender cada detalle.
¿Qué es una variable y cómo se declara en Kotlin?
Las variables son espacios en memoria destinados a almacenar datos específicos como textos, números enteros o decimales. En Kotlin, puedes crear variables usando dos palabras reservadas: val y var.
val define una variable inmutable; su valor no puede cambiar una vez asignado.
var permite cambiar el valor de la variable después de su declaración, es decir, es mutable.
¿Cómo se diferencian val y var en su uso práctico?
Cuando declaras una variable con val nombreUsuario = "Juan", cualquier intento de reasignarle un nuevo valor genera un error: val no puede ser reasignado. Esto garantiza que ese dato permanecerá fijo mientras viva el programa.
Por otro lado, declarar var nombreUsuario2 = "Carlos" sí permite actualizar su valor, por ejemplo: nombreUsuario2 = "Pablo". Imprimiendo el contenido con println(nombreUsuario2) observarás el valor actual.
¿Qué tipos de datos básicos existen en Kotlin y para qué sirve cada uno?
Kotlin incorpora varios tipos de datos básicos que puedes usar en contextos habituales:
String: para textos, como val asunto = "Reunión".
Int: para números enteros, usados con cantidades, ejem: var emailsNoLeidos = 5.
Float: para decimales, ideal para porcentajes, así: val porcentaje = 75.5F.
Boolean: para guardar valores lógicos true o false, ejem: val urgente = true.
Double y Long: almacenan números de mayor tamaño, con más capacidad que Int y Float.
Puedes especificar explícitamente el tipo de dato colocando : seguido del tipo. Por ejemplo:
val totalEmails: Int =150val porcentaje2: Float =99.9F
Cuando no lo indicas, Kotlin lo infiere según el valor inicial.
¿Cómo se convierte un tipo de dato en otro y cuándo hacerlo?
Existen situaciones donde es necesario transformar tipos de variables, como convertir un número a texto o viceversa, para operar correctamente:
Para pasar de número a texto: numero.toString()
Para convertir texto a entero: textoNumero.toInt()
Esta conversión resulta útil para cálculos matemáticos con datos ingresados como texto, por ejemplo en una calculadora.
¿Cómo realizar operaciones matemáticas y qué precauciones tomar con los tipos?
Al ejecutar divisiones entre enteros, el resultado será otro entero; es decir, se eliminará cualquier parte decimal. Por ejemplo, 15 dividido entre 20 da 0 en vez de 0.75. Si uno de los valores es Float, obtendrás el decimal esperado, como al calcular porcentajes.
Usa paréntesis para establecer prioridades, igual que en una calculadora:
val porcentajeEnviados =(enviados.toFloat()/(recibidos + enviados))*100
¿Qué ejercicios prácticos ayudan a consolidar el manejo de variables y tipos?
Un buen ejercicio es crear:
Una variable inmutable llamada nombre.
Dos mutables: recibidos y enviados.
Calcular el porcentaje de emails enviados sobre el total.
Luego, imprime el resultado con println usando la concatenación y templates de Kotlin:
val nombre ="María"var recibidos =60var enviados =40val porcentajeEnviados =(enviados.toFloat()/(recibidos + enviados))*100println("$nombre tiene enviados ${porcentajeEnviados.toInt()}% de sus correos.")
¿Has realizado ejercicios similares? ¡Cuéntanos tu experiencia y comparte tus dudas para seguir aprendiendo juntos!
val nombre ="Miguel"var recibidos =12var enviados =8var totalCorreos = recibidos + enviados
var porcentajeEnviados =(enviados.toFloat()/ totalCorreos)*100println("Usuario: $nombre")println("Correos recibidos: $recibidos")println("Correos enviados: $enviados")println("Total de correos: $totalCorreos")println("Porcentaje de correos enviados: $porcentajeEnviados%")
val nombre ="Miguel"var recibidos = 12var enviados = 8var totalCorreos = recibidos + enviadosvar porcentajeEnviados =(enviados.toFloat()/ totalCorreos)*100println("Usuario: $nombre")println("Correos recibidos: $recibidos")println("Correos enviados: $enviados")println("Total de correos: $totalCorreos")println("Porcentaje de correos enviados: $porcentajeEnviados%")
Acá esta mi aporte
Ejercicio finalizado:
Este es mi ejercicio
Número entero grande almacenado en un Int, usando _ para mejorar la legibilidad
val numeroLargoInt: Int = 100_000_000
Número entero grande almacenado en un Long, usando _ y el sufijo L para indicar el tipo Long
val numeroLargoLong: Long = 1_000_000_000L
Una alternativa para reconocer el tipo de dato como Double es la siguiente:
var emailsRecibidos =20.0var emailsEnviados =5.0
De esta forma no es necesario hacer el casteo.
Se me habia olvidado la suma total de los correos, pero lo logre 😊
Hola profe.
¿Porqué el porcentaje está dentro de unas llaves (usted le dice corchetes, dejémoslo en "curly braces" :-D)?
Entiendo que el uso de llames "{}" sirve para dar más opciones como añadir algo de código además del nombre de la variable/campo en cuestión, pero aquí no parece necesario.
Thnx in advance.
Utilizamos los {} cuando queremos interpolar una operación más compleja o invocar una variable de un objeto. Un buen ejercicio podría ser colocar el cálculo del porcentaje y no usar la variable. Cuando es solo un dato o variable se puede omitir.
Gracias a ti Pablo por la pregunta. Si tienes más contento de ayudar a resolverlas