Funzioni lambda - Parte 1
Fa parte della sezione Logica e flusso del percorso GDScript di Coddy. Lezione 54 di 78.
Una lambda è una funzione senza nome, scritta come valore. Puoi memorizzarla in una variabile come un numero o una stringa:
var add = func(a, b): return a + bInizia con func, i parametri e i due punti, come qualsiasi funzione, ma non ha un nome. Il corpo con una sola istruzione può restare sulla stessa riga.
Per eseguire una lambda memorizzata in una variabile, chiama il suo metodo call() con gli argomenti:
print(add.call(5, 3))8add(5, 3) non funziona: GDScript cerca una funzione chiamata add nello script e segnala Function "add()" not found prima che il programma venga eseguito.
Una lambda più lunga ha un blocco indentato. Come qualsiasi funzione, ha bisogno di return per restituire un valore:
var greet = func(player_name):
var message = "Hello, " + player_name
return message + "!"
print(greet.call("Ana"))Hello, Ana!Una lambda senza return restituisce null, quindi func(n): n * 2 calcola il valore e lo scarta.
I parametri e il risultato possono avere dei tipi: func(n: int) -> int: return n * 2. Il valore di una lambda è un Callable, il tipo GDScript per «qualcosa che puoi chiamare».
Sfida
FacileIl programma legge tre numeri interi, a, b e c.
- Crea una lambda con tre parametri,
x,yez, che restituisce il loro prodotto, e memorizzala in una variabile chiamatamultiply. - Chiamala con
a,bece stampa il risultato.
Per gli input 2, 3 e 4, l'output è:
24Provalo tu
extends Node
func _ready():
var a := int(OS.read_string_from_stdin())
var b := int(OS.read_string_from_stdin())
var c := int(OS.read_string_from_stdin())
# Crea qui la lambda multiply
# Chiama multiply con a, b e c e stampa il risultato
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Logica e flusso
1Stringhe in dettaglio
Metodi delle stringheRicerca nelle stringheSostituzione e trimDividere e unireRipasso - verifica del nome utente4Dizionari - Parte 2
Dizionari annidatiArray di dizionariUnire dizionariCopiare dizionariRiepilogo - Contatore di frequenza7Enumerazioni
Che cos'è un'enumerazione?Definire un'enumerazioneValori dell'enumerazioneEnumerazioni in MatchRiepilogo - Semaforo10Funzioni avanzate
Restituire più valoriFunzioni lambda - Parte 1Funzioni lambda - Parte 2Ripasso - Ordinamento con lambdaFunzioni ricorsive - Parte 1Funzioni ricorsive - Parte 2Ripasso - Somma di un array annidato13Sistema di gestione dell'inventario
Panoramica del progettoAggiungere un articolo2Decisioni avanzate
Match con variabiliGuardie di matchPattern per arrayPattern per dizionariVerifiche di appartenenzaRiepilogo - Parser di comandi5Applicazione Rubrica
Visualizzare il menuAggiungere un contatto8Gestione dei registri degli studenti
Panoramica del progettoAggiungi studente11Funzioni di ordine superiore
Il metodo mapIl metodo filterIl metodo reduceany e allRipasso - Validatore di emailRipasso - Elaboratore di numeri3Array multidimensionali
Fondamenti degli array 2DAccedere agli elementi di un array 2DCicli annidati con array 2DRipasso - Array 2DArray frastagliatiSchemi comuni con gli array 2DRipasso - Tabellone di gioco6Insiemi con i dizionari
Che cos'è un insieme?Il dizionario come insiemeAggiungere e rimuovereUnione e intersezioneDifferenza tra insiemiRiepilogo - Rimuovere i duplicati9Aggregazione avanzata dei dati
Somma dei valoriTrovare minimo e massimoOrdinamento personalizzatoRiepilogo - Ordinatore di dizionariEsercitati da solo: Compilatore GDScript online