ProgramandooIntentándolo

27 Mar 2018

Funciones de extensión en Kotlin

reset css

Las funciones de extensión son una característica muy interesante de Kotlin que nos permite añadir funciones a cualquier clase aunque no tengamos acceso a su código fuente y sin tener que crear una clase que la extienda.

Para definir una función de extensión en Kotlin simplemente tenemos que poner el nombre de la clase para la que queremos crear la función fun Clase.funcion(...){//...}.

Vamos a verlo con un ejemplo muy sencillo, por ejemplo si queremos que la clase Int tenga un método multiplicar para que multiple el número sobre el que se hace la operación por el que le pasemos como parametro solo tenemos que definir la función como hacemos normalmente pero indicando delante el nombre de la clase.

fun Int.multiplicar(numero: Int): Int { return this * numero; }

Dentro de la función tenemos acceso al objeto de la clase para el que ...

26 Mar 2018

Funciones en Kotlin

reset css

En Kotlin se pueden declarar funciones que estén dentro de clases como por ejemplo en Java, pero también se pueden crear funciones que no estén dentro de ninguna clase o que estén dentro de otra función, e incluso se pueden declarar funciones para extender las funcionalidades de cualquier clase aunque no tengamos acceso al código fuente de la clase en cuestión.

Realmente interesante, pero eso no es todo también tenemos expresiones Lambda, funciones de orden superior (funciones que pueden recibir como parámetros otras funciones y/o devolverlas como resultado) o funciones de una sola línea.

¿Cómo se declaran las funciones en Kotlin?

Para definir una función en kotlin tenemos que usar la palabra reservada fun seguida del nombre de la función y entre paréntesis se pueden indicar los parámetros que recibe la función en caso de que los tenga y finalmente tenemos que indicar ...

13 Feb 2018

Kotlin, Gestión de nulos (Null Safety)

kotlin null safety

En Kotlin los objetos por defecto no aceptan valores nulos, para que le podamos asignar un null tendremos que indicar que ese objeto realmente puede ser null. De esta forma vamos a poder garantizar que no se no producirá un NullPointerException en tiempo de ejecución sin necesidad de llenar todo el código de comprobaciones if (a != null) o if (b == null) cuando las variables no deban ser null en ningún caso, pero también nos da una vía de escape para que podamos tener los queridos NullPointerException.

Null Safety, no más NullPointerException

Kotlin es Null Safety, es decir, que gestiona los nulos de forma segura, de modo que puedes garantizar que tu código no va a producir NullPointerException.

Para empezar por defecto los objetos en Kotlin por defecto son not-null y si intentamos asignarle un null a una variable directamente no ...

28 Nov 2017

Los condicionales if, else y when en Kotlin

reset css

En Kotlin como en otros lenguajes de programación existen las sentencias condicionales para ejecutar un fragmento de código u otro en función de que se cumplan o no determinadas condiciones y los nombres para estas condiciones son los habituales if, else y when, el equivalente al switch de Java o JavaScript.

Para determinar si se cumple o no una condición se utilizan los booleanos true y false (ej. var isRojo:Boolean = false), que se pueden utilizar directamente o también pueden ser el resultado de hacer alguna comparación mediante < <= > >= == != e incluso de varias comparaciones distintas utilizando alguno de los operadores lógicos (&& || !)

if en Kotlin

Con if en Kotlin se evalúa la condición introducida entre los paréntesis y si es cierta (el resultado es true) entonces ejecuta el bloque de código del if y si ...

23 Nov 2017

Bucles en Kotlin (for, while y do while)

kotlin bucles for, while y do while

Los bucles son estructuras de control básicas para ejecutar fragmentos de código múltiples veces de forma consecutiva sin tener que escribir el mismo código repetido múltiples veces, en Kotlin podemos usar los bucles for, while y do while.

Bucles for en Kotlin

El bucle for es el que se utiliza más habitualmente y en Kotlin es un poco distinto a como es en Java, aquí tenemos una variable que itera sobre un rango o sobre una lista, array, map,… y como tal en cada iteración toma el siguiente valor.

Por ejemplo para imprimir los números del 1 al 5 podemos hacer un bucle for en el que indiquemos el rango 1..5 y no tenemos que preocuparnos de declarar el índice ni de actualizarlo.

for(num in 1..5) { println("numero: $num") } /* Resultado: numero: 1 numero: 2 ...