Está en la página 1de 8

Introducción a

Autor: Pablo Morejón


¿Qué es Kotlin?
Es un lenguaje de programación de tipado estático, es decir, que la
comprobación de tipificación se realiza durante la compilación, y no durante la
ejecución.

Es compatible con Java ya que corre bajo la Máquina Virtual de Java, por lo
que puedes combinar clases en Java o Kotlin dentro de la misma aplicación.
Incluso puedes usar cualquier librería creada en Java.
¿Qué ventajas tiene Kotlin frente a Java?

● Más rápido en compilar: la librería de Kotlin es mucho más ligera.


● Menos código: un código escrito en Kotlin siempre es menor que al mismo escrito en
Java.
● Seguridad: Es seguro frente a NullPointerException, ya que se avisa en tiempo de
compilación.
● Interoperabilidad: El código de Java y Kotlin pueden convivir en un mismo proyecto
sin problemas.
● Integración en Gradle: podemos escribir scripts para configurar nuestro proyecto en
Android Studio.
● Co-Rutinas: permite que en pocas líneas ejecutar código en un segundo hilo y la
respuesta nos sea devuelta por el hilo principal.
Sintaxis básica

FUNCIONES

Se definen con la palabra reservada fun seguida del nombre de la función, los parámetros y el tipo de datos
que retorna dicha función.

(Nota: Al igual que JavaScript en Kotlin los semicolon (;) al final de la línea son opcionales)

Ejemplos:

a. fun sumar(a: Int, b: Int): Int {


b. return a + b
c. }
d. fun imprimeSuma(a: Int, b: Int) {
e. println("La suma de $a y $b es ${a + b}")
f. }
VARIABLES

● De solo lectura: se definen usando la palabra reservada val.


val a: Int = 20 // Asignación directa
val b = 5 // El tipo `Int` es implícito

● Reasignables: se definen usando la palabra reservada var.


var x = 9 // El tipo `Int` es implícito
var x += 1 // x = 10
EXPRESIONES CONDICIONALES

1. Condición clásica: if / else


fun maximoDe(a: Int, b: Int): Int {
if (a > b) {
return a
} else {
return b
}
}

2. Condición usando la palabra reservada: when. (Se suele usar para condiciones múltiples)

fun describe(obj: Any): String =


when (obj) {
1 -> "One"
"Hello" -> "Greeting"
is Long -> "Long"
!is String -> "Not a string"
else -> "Unknown"
}
BUCLES

1. Usando while:
a. val items = listOf("apple", "banana", "kiwifruit")
b. var index = 0
c. while (index < items.size) {
d. println("item at $index is ${items[index]}")
e. index++
f. }
2. Usando for:
a. val frutas = listOf("fresa", "kiwi", "manzana")
b. for (fruta in frutas) {
c. println(fruta)
d. }
VALORES NULOS

Para indicar que un valor puede ser nulo se usa el carácter '?'. En este primer ejemplo la función puede
devolver un valor null.

fun parseInt(str: String): Int? {


// ...
}
fun imprimeProducto(arg1: String, arg2: String) {
val x = parseInt(arg1)
val y = parseInt(arg2)

// Usando `x * y` produce un error porque pueden ser nulos


if (x != null && y != null) {
// x and y se convierten automáticamente en no nulos después de la condición
println(x * y)
}
else {
println("'$arg1' or '$arg2' no es un número")
}
}

También podría gustarte