Menu
CoddyTech

Tipizzare le funzioni anonime

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 24 di 80.

In Lua, le funzioni sono valori: le hai memorizzate in variabili e le hai passate in giro: local f = function(x) return x * 2 end. Queste funzioni anonime (espressioni di funzione) accettano annotazioni di tipo proprio come le funzioni con nome:

local double = function(x: number): number
    return x * 2
end

local shout = function(text: string): string
    return string.upper(text) .. "!"
end

I parametri ricevono name: type tra parentesi e il tipo restituito segue la parentesi di chiusura: l'unica differenza rispetto a una funzione con nome è che la parola chiave function non ha un nome e l'intera espressione viene assegnata a una variabile.

Se hai già visto JavaScript o TypeScript, tieni presente che Luau non ha funzioni freccia. Non esiste la sintassi =>. Ogni espressione di funzione si scrive con function ... end, sia essa lunga o breve.

Una volta assegnata, la richiami tramite la variabile come qualsiasi funzione: double(21) restituisce 42 e il verificatore controlla ogni chiamata confrontandola con le annotazioni che hai scritto.

challenge icon

Sfida

Facile

Memorizza le funzioni tipizzate in variabili locali.

  1. Riscrivi subtract come local subtract = function(a: number, b: number): number, mantenendone il corpo.
  2. Aggiungi local isPositive = function(num: number): boolean che restituisce num > 0.
  3. Stampa subtract(10, 3) e isPositive(-5).

Premi Esegui codice: l'output mostra 7 e false.

Provalo tu

-- Riscrivi questo come una funzione anonima memorizzata in una variabile local
function subtract(a: number, b: number): number
    return a - b
end

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online