Annotazioni inline delle forme
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 37 di 73.
In Lua hai usato le tabelle come record già da molto tempo: 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 forma di una tabella direttamente nella dichiarazione, elencando ogni campo e il suo tipo tra parentesi graffe:
local user: {name: string, age: number} = {
name = "Ana",
age = 20,
}Confrontala con i tipi di tabella che già conosci: {number} descrive un array e {[string]: number} descrive una mappa con chiavi stringa qualsiasi. Una forma è più precisa. Assegna un nome a ogni campo individualmente e specifica il tipo di ciascun campo.
Una volta dichiarata la forma, il controllo dei tipi verifica la tabella confrontandola con essa mentre modifichi il codice. 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 è number
}Come sempre, l'annotazione non aggiunge alcun comportamento in fase di esecuzione: la tabella è una normale tabella Lua. Le forme inline sono perfette per strutture occasionali che non prevedi di riutilizzare; nella prossima lezione darai un nome alle forme.
Sfida
FacileCrea una variabile denominata student con un'annotazione della forma inline che dichiari:
namedi tipostringstudentIddi tiponumberisEnrolleddi tipoboolean
Inizializzala con name "Sarah Johnson", studentId 12345 e isEnrolled true.
Crea una seconda variabile denominata course con un'annotazione della forma inline che dichiari:
titledi tipostringcreditsdi tiponumberinstructordi tipostring
Inizializzala con title "Introduction to Luau", credits 3 e instructor "Dr. Smith".
Stampa, ciascuno su una riga:
- il nome dello studente
- l'ID dello studente
- il titolo del corso
- il numero di crediti
Provalo tu
-- Scrivi il codice qui
-- 1) dichiara student con un'annotazione della struttura in linea
-- 2) dichiara course con un'annotazione della struttura in linea
-- 3) stampa i quattro campi richiesti
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
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 i parametri e i valori restituitiTipizzare le funzioni anonimeFunzioni che non restituiscono nullaParametri opzionaliValori predefiniti dei parametriFunzioni variadicheDefinire i tipi di funzioneRiepilogo: funzioni tipizzate2Tipi fondamentali
Tipi di base: num, str, boolIl tipo 'any': una via di fugaIl tipo 'unknown'Nil e tipi opzionaliL'inferenza dei tipi in azioneAnnotazioni 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 strutture misteArray tipizzati multidimensionalitable.unpack e argomenti variabiliRiepilogo: 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