Tipi letterali
Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 35 di 80.
Tipi come string consentono qualsiasi stringa, ma a volte hanno senso solo pochi valori esatti. Un tipo letterale usa il valore stesso come tipo:
local mode: "dark" = "dark" -- è consentita solo la stringa "dark"
local locked: true = true -- è consentito solo il valore booleano trueDa soli, i tipi con un singolo valore sono una curiosità. Combinati con le unioni, diventano uno degli strumenti più utili di Luau: un insieme di valori consentiti rigorosamente controllato:
type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"
local move: Direction = "north" -- ✓
local state: GameState = "playing" -- ✓
-- local bad: Direction = "diagonal" -- ✗ errore di tipo!Ora un errore di battitura come "nort" o un valore non valido come "diagonal" viene rilevato mentre modifichi il codice; con una semplice string, passerebbe inosservato e causerebbe un errore in fase di esecuzione, se sei abbastanza fortunato da accorgertene.
I tipi letterali distinguono tra maiuscole e minuscole e richiedono una corrispondenza esatta: "North" non corrisponde a "north". I letterali stringa sono il caso più comune, ma anche i letterali booleani e, nelle versioni più recenti di Luau, quelli numerici funzionano allo stesso modo. Questo schema, un'unione di stringhe letterali, è anche il modo in cui Luau sostituisce gli enum di altri linguaggi, come vedrai in un capitolo successivo.
Sfida
FacileConsenti solo quattro nomi di direzione esatti.
- Scrivi
type Direction = "north" | "south" | "east" | "west". - Scrivi
local function movePlayer(direction: Direction): stringche restituisca`Moving {direction}`. - Dichiara
local playerDirection: Direction = "east"e stampamovePlayer(playerDirection).
Premi Esegui codice: l'output mostra Moving east.
Provalo tu
-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", poi stampa il movimento
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