Curso Kotlin | #4. Variables y tipos de datos
Tags: kotlin, spanish, programming, tutorial
Published: 2022-12-13 12:33:40

Bienvenido/a a otro capítulo del Curso de Kotlin! Podés consultar el curso completo desde [este link](https://github.com/maxwellnewage/kotlin-course) que te dejo acá. Podés seguirme por [LinkedIn](https://www.linkedin.com/in/maximilianoburgos/) o [Twitter](https://twitter.com/maxwellnewage) si querés estar al tanto de las próximas publicaciones.

## Alternativas Académicas a un IDE
Antes de empezar este capítulo, me gustaría aclarar que si no te sentís del todo cómodo con Intellij como IDE, podés acceder a alternativas web como [Try Kotlin](https://kotlinlang.org/?_ga=2.67603345.1868296356.1648818262-2104221807.1638287648), el cual funciona como un playground en donde pueden practicar los conceptos técnicos que vean en este curso.

Pero es importante entender que esto es plenamente académico. En un día laboral van a usar Android Studio o Intellij para desarrollo, u otro IDE específico para la tarea que deban realizar.

Este tipo de sitios permiten aprender sin las complicaciones de configurar entornos de desarrollo, son ágiles, pero no los tomen como la verdad absoluta: de hecho muchos errores se tienden a encapsular a modo de simplificar el aprendizaje y reducir la frustración, por lo cual repito: No son entornos reales.

El curso esta orientado al uso de Intellij, pero en materia de código no van a tener complicaciones mayores si usan esto.

## Variables
Una variable, en cualquier lenguaje de programación, es un espacio en memoria ocupado por un dato que puede ser un texto o un número, por ejemplo.

La estructura de una variable en Kotlin se define asi:

```
[var/val] [nombre]: [tipo de dato] = [valor]
```

En el caso de Kotlin tenemos dos tipos de variables:

- Mutables (var): Se puede cambiar el valor en cualquier momento.
- Inmutables (val): Se asigna el valor cuando se define y no se puede cambiar.

## Tipos de datos
Los tipos de datos de una variable pueden ser texto (String), enteros (Integer, Long), flotantes (Float, Double), booleanos (Boolean), entre otros. La estructura de una variable

Quizá en el párrafo anterior haya metido demasiados conceptos juntos, pero no te preocupes, vamos a ir de a poco analizando cada uno.

Por ejemplo, definamos una variable inmutable de tipo String:

```kotlin
val name: String = "Maxwell"
```

Si queremos cambiar el nombre de la variable luego de declararla, no vamos a poder hacerlo porque justamente es inmutable.

Pero podemos convertirla en var:

```kotlin
var name: String
name = "Maxwell"
```

Al ser mutable, Kotlin ya sabe que su valor va a cambiar, por lo cual no estamos obligados a asignarlo apenas la definimos.

Otro detalle interesante es que Kotlin es fuertemente tipado con inferencia de tipos.

Aporte interesante del comentario de Igor Román (publicado en Medium):

> (…) si asignamos un valor String a una variable (sin declarar el tipo explícitamente) el compilador lo reconoce como texto pero a esa variable posteriormente no se le puede asignar un valor entero o booleano sino solo texto, en resumen Kotlin es fuertemente tipado con inferencia de tipos (que es un característica de la programación funcional)

Podemos declarar el tipo de la variable explícita o implícitamente:

```kotlin
val name: String = "Maxwell"
val name = "Maxwell"
```

En este ejemplo usé val, pero podría haber utilizado var sin problemas.

En cuanto a los tipos de datos que existen, tenemos los tipos enteros:

![Tipos Enteros](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/egnui9gi2uhb7akdpb2w.png)

Tipos Flotantes, los famosos números con coma:

![Tipos Flotantes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3q1btkvooxe9y9q759kb.png)

Tipos para texto:

```kotlin
val aLetter: Char = 'a'
val name: String = "John"
```

La diferencia es notable, pero Char almacena solo un caracter, mientras que String es una cadena de caracteres.

Estudiar tipos de datos es complejo, podría crear un artículo específico para cada tipo, y es probable que lo terminemos haciendo.

Pero más alla de eso, vamos a empezar tratando los tipos más comunes y luego iremos profundizando en los complicados.

Por ejemplo, queremos almacenar los datos de una persona, la cual va a tener un nombre, un apellido, una edad, un peso, y un booleano que indica si tiene empleo:

```kotlin
val firstName: String = "Tomas"
val lastName: String = "Tompson"
val age: Int = 32
val weight: Float = 70f
val isEmployed: Boolean = true
```

Los tipos Float o flotante deben tener la letra “f” al final del valor.

Podría haber usado el tipado dinámico, pero me pareció más gráfico declarar el tipo en cada caso.

Si quisieramos imprimir esto, sería de la siguiente manera:

```kotlin
println("Hola mi nombre es $firstName $lastName y tengo $age años. Mi peso es de $weight kg")
```

Usamos el signo “$” para concatenar strings literales con variables. Esto lo veremos con profundidad en los siguientes capítulos.

No incluí la parte del booleano porque necesitamos condicionales, los cuales ya veremos mas adelante.

## Conclusiones
Como podemos observar, Kotlin es un lenguaje bastante sencillo de entender y además posee una flexibilidad que nos será de gran ayuda a medida que nuestro código vaya creciendo.

Es fundamental entender el concepto de variables debido a todo lo que vamos a hacer en el futuro.

Estamos en el principio del camino y quizá muchos expertos se estarán aburriendo, pero creánme que vamos a profunzar a niveles muy interesantes en los próximos capítulos.

Me interesa remarcar la idea de que estoy haciendo un curso para todo el mundo, desde principiantes hasta expertos.

Si hay algún tema interesante que quieran sugerir, pueden hacerlo en los comentarios de este artículo o en las redes que detallé al principio del mismo.