Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Kotlin

Una introducción a Kotlin

by
Difficulty:BeginnerLength:MediumLanguages:

Spanish (Español) translation by Javier Salesi (you can also view the original English article)

Introducción

Desde que Apple lanzó el lenguaje de Programación Swift para iOS, muchos desarrolladores Android han querido un lenguaje similar para el desarrollo en Android. Si eres uno de esos desarrolladores, te va a encantar Kotlin, un lenguaje JVM que es notablemente similar a Swift.

Kotlin es un lenguaje tipado estáticamente, desarrollado por JetBrains, cuya sintaxis es más expresiva y concisa que la de Java. Con características como funciones orden superior, expresiones lambda, sobrecarga de operadores, plantillas de string, y más, Kotlin tiene mucho más que ofrecer que Java. Debido a que Java y Kotlin son altamente interoperables, pueden ser usados juntos en el mismo proyecto.

Si eres un programador competente en Java, podrás aprender Kotlin en muy poco tiempo. En éste tutorial te mostraré cómo usar las palabras reservadas más frecuentemente usadas.

Requisitos Previos

Para continuar, necesitarás:

1. Clases

Para crear una clase en Kotlin, tienes que usar la palabra reservada class. Por ejemplo, aquí te muestro como crear una clase llamada Person:

Agregando Propiedades

Una clase generalmente tiene propiedades y funciones miembro (también llamados métodos). Agreguemos dos propiedades a la clase Person, name de tipo String y age de tipo Int.

Como puedes ver, la sintaxis para crear variables es un poco diferente de la de Java. Para crear una variable en Kotlin, debes usar la palabra reservada var. Sin embargo, si quieres que tu variable sea una variable de solo lectura/una única asignación, mejor utiliza la palabra reservada val.

Por el bien de la seguridad null, Kotlin también hace una distinción entre variables que pueden ser null y variables que nunca pueden ser null. En nuestro ejemplo previo, ambas variables name y age nunca pueden ser null. Si son null, el compilador emitirá un error.

Para crear una variable que puede contener null, necesitas añadir un ? después del tipo de la variable. Por ejemplo:

Ahora que tenemos una clase, crear una instancia de ella es fácil:

No, Kotlin no tiene la palabra reservada new. Una vez que la instancia ha sido creada, puedes accesar a sus propiedades de la misma forma que lo harías en Java:

Usar Constructores

Inicializando las propiedades individuales de nuestra instancia en la forma en que lo acabamos de hacer no es una buena práctica en la codificación. Una mejor forma de hacer ésto sería utilizando un constructor. La sintaxis de Kotlin para crear tal constructor es muy compacta:

De hecho, si no tienes nada que agregar a tu clase, no necesitas las llaves. El siguiente código funciona bien:

Podría ya ser obvio para tí que no hay forma de que puedas agregar código personalizado a éste constructor. Éste constructor, que es parte del encabezado de la clase, es llamado el constructor primario.

Para agregar más constructores a tu clase, conocidos como constructores secundarios, deberías usar la palabra reservada constructor. Los constructores secundarios deberían delegar al constructor primario usando la palabra reservada this. Agreguemos un constructor secundario a nuestra clase que inicializa el valor de una propiedad llamada email:

Para crear una instancia que usa el constructor secundario, escribes algo como ésto:

Agregar Funciones Miembro

En Kotlin, las funciones son creadas usando la palabra reservada fun. Agreguemos una función miembro simple llamada isElegibleToVote que regrese un valor Boolean:

Nota que el tipo de valor retornado se indica al final del encabezado de la función. Puedes llamara a éste método de la misma forma que lo harías en Java:

Crear Extensiones

Kotlin te permite extender una clase al añadir funciones adicionales a ella sin modificar su definición original. Tales funciones son conocidas como extensiones. Los nombres de éstas funciones deberían ser precedidas por los nombres de las clases de las que extienden.

Por ejemplo, para agregar una extensión llamada isTeenager a la clase Person, escribe el siguiente código afuera de la clase:

Ésta característica es especialmente útil cuando quieres extender clases que no pertenecen al código base de tu proyecto. Por ejemplo, el siguiente fragmento de código agrega una extensión containsSpaces a la clase String:

Crear Clases Derivadas

Es importante mantener lo siguiente en mente cuando se crea una clase derivada:

  • Debes usar un : en lugar de la palabra reservada extends de Java.
  • El encabezado de la clase base debe tener la anotación open.
  • Si tu clase base tiene un constructor que toma parámetros, tu clase derivada debe inicializar ésos parámetros en el mismo header.

Creemos una clase llamada Employee que deriva de Person:

Sobreescribir Funciones Miembro

En Kotlin, tienes que señalar explícitamente que una función miembro puede ser sobreescrita al usar la anotación open en el encabezado del método en la clase base. En la clase derivada,  funciones abiertas pueden ser sobreescritas usando la anotación override.

Por ejemplo, para sobreescribir el método isElegibleToVote, agregas el siguiente fragmento de código a la clase Employee:

Crear Métodos Estáticos

Kotlin no te permite crear métodos estáticos. Sin embargo, si te permite crear un paquete de funciones nivel que no pertenecen a ninguna clase.

El método main es quizá el método estático mejor conocido. Si quieres agregar el método main a un paquete llamado com.tutsplus.code.tutorial, entonces tu código se vería así:

2. Funciones

Ya aprendiste cómo crear funciones sencillas en los ejemplos previos. La sintaxis que usaste para crear esas funciones fue muy similar a la de Java. Kotlin, sin embargo, te permite hacer mucho más con funciones.

Crear Funciones de Expresión sencillas

Si una función regresa el valor de una expresión sencilla, entonces puedes usar el operador = después del encabezado de la función seguido por la expresión para definir la función.

Por ejemplo, para agregar un método a la clase Person que regresa true si la persona es octogenaria, deberías escribir:

Como puedes ver, ésta sintaxis corta es más compacta y legible.

Funciones de Orden Superior y Expresiones Lambda

Funciones de orden superior son funciones que pueden regresar funciones o aceptar funciones como parámetro. Una expresión lambda, por otro lado, es sólo una función que no tiene nombre. Generalmente, expresiones lambda y funciones de superior son usadas juntas.

Considera el siguiente ejemplo que demuestra la sintaxis de una expresión lambda:

Ésta es una simple expresión lambda que toma dos parámetros, x y y, y regresa su suma. Como podrías haber supuesto, los parámetros de la función son listados antes del operador -> y el cuerpo de la función comienza después del operador ->. Ésta expresión lambda puede ser asignada a una variable y usada como sigue:

Nota que el tipo de la variable que contiene la expresión lambda especifica los tipos de sus parámetros y su valor de retorno.

Crear una función de orden alta que puede aceptar la expresión lambda de arriba como un parámetro es igual de fácil. Por ejemplo, para crear una función que duplique el resultado de la expresión lambda, escribirías:

Puedes llamar a ésta función como sigue:

Alternativamente, puedes pasar la expresión lambda directamente a la función de orden superior:

Las expresiones lambda son con frecuencia usadas con arrays (arreglos). Por ejemplo, considera el siguiente array de valores Int:

Si quieres elevar al cuadrado el valor de cada elemento en el array, puedes usar la función map junto con una expresión lambda como sigue:

3. Rangos

Expresiones de rango son usadas muy frecuentemente en Kotlin. Ya las usaste cuando creaste los métodos isTeenager y isOctogenarian.

Para crear un rango, todo lo que necesitas es el operador ...

Para crear un rango en orden descendente, usa mejor la función downTo.

Si no quieres el paso que sea 1, puedes especificar un valor personalizado usando la función step.

Verás más expresiones de rango posteriormente en éste tutorial.

4. Palabras reservadas condicionales

if

En Kotlin, if es una expresión que regresa diferentes valores dependiendo de si la condición ha sido satisfecha. El siguiente ejemplo ilustra cómo funciona ésto.

when

La expresión when es equivalente a switch de Java. Sin embargo, es mucho más versátil. Por ejemplo, considera el siguiente ejemplo.

Como puedes ver, when no puede tomar solo valores solos sino también expresiones como sus condiciones.

5. La palabra reservada Looping

for.. in

En Kotlin, puedes usar el bucle for..in para iterar a través de arrays, colecciones, y cualquier cosa que proporcione un iterador. Su sintaxis es casi idéntica a la de Java, excepto por el uso del operador in en lugar del operador : de Java. El siguiente ejemplo te muestra cómo iterar a través de un array de objetos String.

Con la ayuda de la expresiones de rango, puedes hacer que este bucle se comporte como un tradicional bucle for de estilo-C.

while y do..while

La sintaxis de los bulces while y do..while en Kotlin es idéntica a la sintaxis usada en Java. Por ejemplo, el siguiente código Kotlin itera en un array de objetos String usando un bucle while:

6. Plantillas de String

Kotlin te deja incrustar variables y expresiones en strings al encerrarlas en un par de llaves, precedidas de un símbolo $. Por ejemplo:

Conclusión

En éste tutorial, aprendiste las bases del lenguaje de programación Kotlin. Aunque cubrimos varios constructores aquí, Kotlin tiene muchos mas que ofrecer. De hecho, a partir de Junio de 2015, Kotlin aún está disponible solamente como una vista previa. Es probable ver varias mejoras y nuevas funcionalidades en los próximos meses.

Si quieres saber como usar Kotlin en Android Studio, entonces echa un vistazo a Como Usar Kotlin en Tus Proyectos Android. Para aprender mas sobre el lenguaje Kotlin, recomiendo visitar la documentación de Kotlin.

¡Sé el primero en conocer las nuevas traducciones–sigue @tutsplus_es en Twitter!

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.