Introducció

En aquest tema, explorarem les funcions i les lambdas en Kotlin. Les funcions són blocs de codi reutilitzables que realitzen una tasca específica, mentre que les lambdas són funcions anònimes que es poden passar com a arguments a altres funcions. Aprendre a utilitzar funcions i lambdas és essencial per escriure codi Kotlin eficient i llegible.

Funcions en Kotlin

Definició de Funcions

En Kotlin, les funcions es defineixen amb la paraula clau fun, seguit del nom de la funció, els paràmetres entre parèntesis i el tipus de retorn. Aquí teniu un exemple bàsic:

fun suma(a: Int, b: Int): Int {
    return a + b
}

Funcions d'Una Sola Línia

Si la funció és molt senzilla, es pot definir en una sola línia utilitzant l'operador =:

fun resta(a: Int, b: Int): Int = a - b

Funcions amb Paràmetres per Defecte

Kotlin permet definir valors per defecte per als paràmetres de les funcions. Això és útil per evitar sobrecàrregues de funcions:

fun saluda(nom: String = "Món"): String {
    return "Hola, $nom!"
}

Funcions d'Ordre Superior

Les funcions d'ordre superior són funcions que poden rebre altres funcions com a paràmetres o retornar funcions. Aquí teniu un exemple:

fun opera(a: Int, b: Int, operacio: (Int, Int) -> Int): Int {
    return operacio(a, b)
}

fun main() {
    val suma = { x: Int, y: Int -> x + y }
    println(opera(3, 4, suma)) // Output: 7
}

Lambdas en Kotlin

Definició de Lambdas

Una lambda és una funció anònima que es pot definir de manera concisa. Aquí teniu un exemple de lambda que suma dos números:

val sumaLambda: (Int, Int) -> Int = { a, b -> a + b }

Utilització de Lambdas

Les lambdas es poden passar com a arguments a funcions d'ordre superior. Aquí teniu un exemple:

fun main() {
    val restaLambda = { x: Int, y: Int -> x - y }
    println(opera(10, 5, restaLambda)) // Output: 5
}

Lambdas amb Paràmetres It

Si una lambda té un sol paràmetre, es pot utilitzar la paraula clau it per referir-s'hi:

val incrementa: (Int) -> Int = { it + 1 }
println(incrementa(5)) // Output: 6

Exercicis Pràctics

Exercici 1: Funció de Multiplicació

Escriu una funció anomenada multiplica que prengui dos números enters com a paràmetres i retorni el seu producte.

fun multiplica(a: Int, b: Int): Int {
    return a * b
}

Exercici 2: Lambda de Divisió

Defineix una lambda que prengui dos números enters i retorni el resultat de la seva divisió.

val divideix: (Int, Int) -> Int = { a, b -> a / b }

Exercici 3: Funció d'Ordre Superior amb Lambda

Escriu una funció d'ordre superior anomenada aplicaOperacio que prengui dos números enters i una lambda, i retorni el resultat de la lambda aplicada als dos números.

fun aplicaOperacio(a: Int, b: Int, operacio: (Int, Int) -> Int): Int {
    return operacio(a, b)
}

fun main() {
    val suma = { x: Int, y: Int -> x + y }
    println(aplicaOperacio(3, 4, suma)) // Output: 7
}

Resum

En aquesta secció, hem après a definir i utilitzar funcions i lambdas en Kotlin. Les funcions ens permeten encapsular blocs de codi reutilitzables, mentre que les lambdas ens permeten definir funcions anònimes de manera concisa. També hem vist com les funcions d'ordre superior poden rebre lambdas com a arguments, permetent-nos escriure codi més flexible i modular.

En el següent mòdul, explorarem la programació orientada a objectes en Kotlin, incloent-hi classes, objectes, herència i interfícies.

© Copyright 2024. Tots els drets reservats