Kotlin: funzioni di ordine elevato
Le funzioni in Kotlin sono first class il che si traduce nel fatto che possono essere memorizzate in variabili e strutture dati, nonché passate come argomento o restituite come valore di ritorno di altre funzioni dette funzioni di ordine elevato. Nella definizione dei parametri in ingresso o di ritorno è necessario utilizzare la notazione (A, B) -> C dove A e B sono i parametri in ingresso e C il valore di ritorno della funzione. Se il tipo di ritorno è Unit può essere omesso. La funzione passata come argomento può essere una funzione semplice, una lambda o una funzione anonima. Esempio di utilizzo è:
fun calculate(x: Int, y: Int, operation: (Int, Int) -> Int): Int {
return operation(x, y)
}
fun sum(x: Int, y: Int) = x + y
fun main() {
val sumResult = calculate(4, 5, ::sum)
val mulResult = calculate(4, 5) { a, b -> a * b }
println("sumResult $sumResult, mulResult $mulResult")
}
Dove nella prima chiamata alla funzione di ordine elevato calculate, viene passata la funzione semplice sum mentre nella seconda chiamata viene passata una funzione lambda che esegue la moltiplicazione tra due numeri. Per maggiori informazioni visitate https://kotlinlang.org/docs/lambdas.html
Commenti recenti