Funzioni e lambda
Definire funzioni con parametri e tipi restituiti, usare argomenti predefiniti e denominati e scrivere espressioni lambda concise.
Funzioni e lambda è una lezione Android Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Android Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Android Academy include 3 lezioni in totale.
Perché utilizzare le funzioni?
Le funzioni consentono di scrivere una volta un blocco di codice e riutilizzarlo ovunque.
- Riducono le duplicazioni
- Rendono il codice più facile da leggere e testare
- Suddividono i problemi complessi in parti più semplici
In Kotlin, le funzioni sono cittadini di prima classe: può memorizzarle in variabili e passarle ad altre funzioni.
Sintassi di base delle funzioni
Una funzione Kotlin utilizza la parola chiave fun:
fun greet(name: String): String {
return "Hello, $name!"
}
fun main() {
val msg = greet("Alice")
println(msg) // Hello, Alice!
println(greet("Bob")) // Hello, Bob!
}Funzioni a espressione singola
Quando il corpo di una funzione è costituito da una sola espressione, può utilizzare = e omettere le parentesi graffe e return:
fun square(n: Int): Int = n * n
fun add(a: Int, b: Int) = a + b // type inferred
fun main() {
println(square(5)) // 25
println(add(3, 7)) // 10
}Argomenti predefiniti e denominati
Le funzioni Kotlin supportano valori predefiniti per i parametri: non sono necessari overload:
- Predefinito:
fun greet(name: String = "World") - Denominato: chiami con
greet(name = "Alice")per non dover rispettare l'ordine posizionale
Predefiniti e denominati in azione
Gli argomenti predefiniti mantengono pulita la sua API:
fun buildProfile(
name: String,
age: Int = 0,
role: String = "User"
): String {
return "$name | age=$age | $role"
}
fun main() {
println(buildProfile("Alice"))
println(buildProfile("Bob", age = 30))
println(buildProfile("Carol", 25, "Admin"))
}Che cosa sono le lambda?
Una lambda è una funzione anonima, cioè una funzione senza nome.
- Sintassi:
{ params -> body } - Memorizzata in una variabile:
val double = { x: Int -> x * 2 } - Passata a un'altra funzione come argomento
Le lambda sono ovunque in Android: listener dei clic, trasformazioni di liste e coroutine.
Esempi di lambda
Memorizzi e chiami le lambda proprio come normali funzioni:
fun main() {
val double = { x: Int -> x * 2 }
println(double(4)) // 8
val add = { a: Int, b: Int -> a + b }
println(add(3, 5)) // 8
// Lambda with no params
val sayHi = { println("Hi!") }
sayHi() // Hi!
}Funzioni di ordine superiore
Una funzione di ordine superiore accetta un'altra funzione come parametro oppure ne restituisce una.
La libreria standard di Kotlin ne contiene moltissime: filter, map, forEach.
Sintassi della lambda finale: quando l'ultimo argomento è una lambda, la sposti fuori dalle parentesi.
Sintassi della lambda finale
Passi una lambda come ultimo argomento, fuori dalle parentesi:
fun applyTwice(n: Int, operation: (Int) -> Int): Int {
return operation(operation(n))
}
fun main() {
val result = applyTwice(3) { x -> x * 2 }
println(result) // 12 (3 * 2 = 6, 6 * 2 = 12)
// 'it' is the implicit single parameter
val doubled = applyTwice(5) { it + it }
println(doubled) // 20
}Verifica rapida
Osservi questo codice. Che cosa stamperà?
val triple = { x: Int -> x * 3 }
println(triple(4))
Riepilogo: funzioni e lambda
Ha imparato che:
fundefinisce una funzione con parametri e tipo restituito- Le funzioni a espressione singola utilizzano la forma abbreviata con
= - Gli argomenti predefiniti e denominati sostituiscono gli overload
- Le lambda sono funzioni anonime:
{ params -> body } - Le funzioni di ordine superiore accettano funzioni come parametri
Prossimo argomento: controllare il flusso del programma con condizioni e cicli.
Domande Frequenti
La lezione «Funzioni e lambda» è gratuita?
Sì — il testo completo di «Funzioni e lambda» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Android Academy, passa a CoddyKit PRO. Il corso Android Academy include 3 lezioni in totale.
Cosa imparerò in «Funzioni e lambda»?
Definire funzioni con parametri e tipi restituiti, usare argomenti predefiniti e denominati e scrivere espressioni lambda concise. Eserciti Android Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Android Academy?
Non è richiesta alcuna esperienza precedente. Android Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.
Quanto tempo richiede la lezione «Funzioni e lambda»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Android Academy?
Sì. Ogni lezione Android Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Variabili e tipi di dati
- Funzioni e lambda
- Flusso di controllo