Passaggio di funzione come parametro
Spesso per lavorare su un Array o una lista dobbiamo realizzare lunghe funzioni e spesso difficili da mantenere e da trovare bug, in quanto spesso e volentieri ogni linguaggio o contenitore ha delle piccolezze diverse ed un sbagliato copia e incolla provoca macelli. Inoltre con la necessità di usare di usare l’interazione interna dobbiamo passare in qualche modo una funzione ad un’altra. Questo è possibile grazie alle stdlib operation di Kotlin e le espressioni Lambda. In Kotlin si utilizza un’istanza di una classe che implementa un interfaccia (una roba un po’ complicata che viene semplificata dalle lambda).
Interfacce funzionali
Le interfacce a cui si assegna una lambda devono essere delle interfacce funzionali, ossia devono essere annotate con @Java.lang.FunctionalInterface ed essere composte di un unico metodo che rispetti la stessa firma della funzione Lambda definita. Se si sbaglia qualcosa, la compilazione dà origine a degli errori interessanti che vi presento più avanti.