En este segundo capítulo vamos a ver cómo funcionan las variables en Kotlin, qué es eso de val y de var, y cuál es más recomendable utilizar.

He querido empezar por aquí, porque te va a ser útil para entender después cómo crear “campos” en nuestras clases (ya veremos que no se llaman así).

Variables en Kotlin

Las variables en Kotlin nos permiten, al igual que en Java, asignar valores que luego pueden ser modificados y utilizados en distintos puntos de nuestro programa, siempre y cuando estén dentro del ámbito en el que se ejecuta dicho código.

Pero me voy a centrar en las diferencias que encontramos con Java.

1. Las variables pueden ser mutables e inmutables

Esto también se puede hacer en Java (marcándola como final si queremos que no se pueda modificar), pero en Kotlin es mucho menos verboso y cobran una nueva importancia: en Kotlin se prefieren los valores inmutables siempre que sea posible.

El que la mayor parte de nuestro programa sea inmutable genera muchos benificios, algunos de los cuales puedes ver en este artículo que escribí en GenbetaDev al respecto.

2. Se declaran indicando valvar según sean inmutables o mutables

Algo muy interesante de Kotlin es que en muchos puntos no hay que especificar el tipo de datos con el que estamos trabajando, siempre que el compilador lo pueda inferir.

Así que sólo tenemos que indicarle varval en función del tipo de variable que queramos generar, y el tipo podrá normalmente inferirse del lado derecho. Aún así, podemos especificarle un tipo de forma explícita.

Algunos ejemplos:

Spoiler: como ves, no hace falta utilizar new para crear una nueva instancia de un objeto.

3. Se hace casting automático de tipos

Siempre que el compilador sea capaz de de detectar que no hay otra opción posible, el casting se hará automáticamente. ¡Una maravilla!

Curiosidad: ¿has visto que no he llamado a setText() ? ¡La resolveré en los próximos artículos!

4. En Kotlin todo es un objeto

No existen los tipos básicos, y no existe void. Si algo no devuelve nada, en realidad devuelve el objeto Unit. La mayoría de las veces se puede omitir, pero está ahí, acechando.

Por tanto, todo esto son objetos:

5. Los tipos numéricos más simples no se pueden asignar a otros más complejos

Por ejemplo, un entero no puede ser asignado a una variable de un long. Esto no compila:

Necesita hacerse un casting explícito:

Conclusión

Estas son algunas de las diferencias más destacadas que puedes encontrar entre las variables en Java y en Kotlin. En general, las variables en Kotlin aportan mucha más flexibilidad, seguridad (debido a la convención de usar val siempre que se pueda) y un código más limpio y conciso.

Si te está enamorando el lenguaje, te recomiendo que te apuntes al intensivo presencial que realizaré próximamente.

kotin-desarrolladores-android