Annotazioni inline delle forme
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 39 di 80.
In Lua hai usato a lungo le tabelle come record: local user = {name = "Ana", age = 20}. Nulla ti impedisce di scrivere male il nome di un campo, dimenticarne uno o memorizzare una stringa dove dovrebbe esserci un numero. Te ne accorgi solo quando il codice viene eseguito.
Luau ti permette di descrivere la struttura di una tabella direttamente nella dichiarazione, elencando ogni campo e il relativo tipo tra parentesi graffe:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Confronta questo con i tipi di tabella che già conosci: {number} descrive un array e {[string]: number} descrive una mappa con chiavi di qualsiasi stringa. Una struttura è più precisa. Nomina ogni campo individualmente e assegna a ciascuno il proprio tipo.
Una volta dichiarata la struttura, il controllo dei tipi verifica la tabella mentre la modifichi. Un campo mancante o un valore del tipo sbagliato viene segnalato prima ancora che il codice venga eseguito:
local user: {name: string, age: number} = {
name = "Ana",
age = "twenty", -- ✗ errore di tipo: string non è un numero
}Come sempre, l'annotazione non aggiunge alcun comportamento in fase di esecuzione: la tabella è una normale tabella Lua. Le strutture inline sono perfette per le strutture occasionali che non hai intenzione di riutilizzare; nella prossima lezione darai un nome alle strutture.
Sfida
FacileDescrivi un record studente direttamente nella sua dichiarazione.
- Dichiara
local student: {name: string, studentId: number} = {name = "Sarah Johnson", studentId = 12345}. - Stampa
student.name, poistudent.studentId.
Premi Esegui codice: l'output mostra Sarah Johnson e 12345.
Provalo tu
-- 1) dichiara student con un'annotazione inline della struttura
-- 2) stampa il suo nome, poi il suo studentId
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 mappe6Tipizzare le forme delle tabelle
Annotazioni inline delle formeAlias di tipo per le formeProprietà opzionaliForme e tabelle libere a confrontoEstendere le formeAggiungere metodi alle formeSelf e metodi con i due puntiRiepilogo: definire le forme delle tabelleEsercitati da solo: Compilatore Luau online