Menu
Coddy logo textTech

Forme e tabelle libere a confronto

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 40 di 73.

Ora hai due modi per lavorare con le tabelle record: quello informale che hai sempre usato in Lua e le strutture dichiarate. Vale la pena fermarsi un momento per vedere cosa offre ciascun metodo.

Una tabella informale accetta qualsiasi cosa. Questa flessibilità ha un prezzo: se scrivi male un campo (user.nmae), ottieni silenziosamente nil; se dimentichi un campo, il bug emerge molto più avanti, in fase di esecuzione, nel codice che per primo accede al campo mancante:

local user = {name = "Ana", age = 20}
print(user.nmae) -- tabella non vincolata: stampa nil senza segnalare errori

Dichiara una struttura e questi errori passano dalla fase di esecuzione al momento della scrittura. Il verificatore segnala l'errore di battitura appena lo scrivi, il tuo editor può completare automaticamente i nomi dei campi e la dichiarazione type funge anche da documentazione del contenuto della tabella:

type User = {name: string, age: number}
local user: User = {name = "Ana", age = 20}
print(user.nmae) -- ✗ errore di tipo: la chiave 'nmae' non è stata trovata in User

Se provieni da TypeScript, tieni presente che Luau non ha la parola chiave interface: type gestisce tutte le strutture. Inoltre, non esiste la "fusione delle dichiarazioni": dichiarare due tipi con lo stesso nome nello stesso ambito è un errore, quindi ogni struttura ha una sola definizione.

Le strutture di Luau sono strutturali: qualsiasi tabella con i campi corretti e i tipi corretti corrisponde, indipendentemente da dove o come è stata creata. Anche le tabelle informali hanno il loro posto: gli script veloci e i dati realmente dinamici non hanno bisogno di una struttura dichiarata. Per qualsiasi dato passato tra funzioni, però, una struttura individua gli errori quando correggerli costa ancora poco.

Provalo tu

Questa lezione non include una sfida di codice.

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 Introduzione a Luau

Esercitati da solo: Compilatore Luau online