Menu
CoddyTech

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 + b

Inizia 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))
8

add(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».

challenge icon

Sfida

Facile

Il programma legge tre numeri interi, a, b e c.

  1. Crea una lambda con tre parametri, x, y e z, che restituisce il loro prodotto, e memorizzala in una variabile chiamata multiply.
  2. Chiamala con a, b e c e stampa il risultato.

Per gli input 2, 3 e 4, l'output è:

24

Provalo 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
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore GDScript online