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) .. "!"
endI 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.
Sfida
FacileMemorizza le funzioni tipizzate in variabili locali.
- Riscrivi
subtractcomelocal subtract = function(a: number, b: number): number, mantenendone il corpo. - Aggiungi
local isPositive = function(num: number): booleanche restituiscenum > 0. - Stampa
subtract(10, 3)eisPositive(-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
1Per iniziare con Luau
Che cos'è Luau?Perché usare Luau?Il tuo primo codice LuauVerifica dei tipi e modalità di erroreRiepilogo: introduzione a Luau4Lavorare con le funzioni
Tipizzare parametri e valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriValori predefiniti per i booleaniFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate7Progetto: Gestore di attività tipizzato
Progetto: La struttura di un'attivitàFunzione per aggiungere un'attività2Tipi fondamentali
Numero, stringa e booleanoIl tipo 'any': una via di fugaIl tipo 'unknown'Tipi nil e opzionaliL’inferenza dei tipi in praticaAnnotazioni esplicite dei tipiRipasso: esercizi sui tipi fondamentali5Alias, unioni e intersezioni
Alias di tipo per i primitiviTipi unioneLavorare con i tipi unioneTipi letteraliTipi intersezioneCombinare gli alias di tipoRiepilogo: combinazioni avanzate di tipi3Tabelle tipizzate: array e mappe
Array tipizzatiAggiungere e leggere elementiChe cos'è un tipo map?Dichiarare e accedere alle mappeIterare sulle tabelleTabelle con forme misteLeggere una grigliaCreare una grigliatable.unpackRiepilogo: array e mappeEsercitati da solo: Compilatore Luau online