Menu
CoddyTech

Tipi unione

Fa parte della sezione Introduzione a Luau del percorso Lua di Coddy. Lezione 33 di 80.

A volte un solo tipo non basta. Un ID utente potrebbe arrivare come "user123" oppure come 42. In Lua standard dovresti solo sperare per il meglio; Luau ti offre i tipi unione: la barra verticale | si legge «oppure»:

local userId: number | string

userId = "user123"  -- ✓ una stringa è consentita
userId = 42          -- ✓ un numero è consentito
userId = true        -- ✗ errore di tipo: boolean non è incluso nell'unione

La variabile può contenere uno qualsiasi dei membri dell'unione, e solo quelli. Questa è la differenza fondamentale rispetto a any: un'unione mantiene rigorosi i valori consentiti, offrendoti al contempo la flessibilità di cui hai bisogno.

Le unioni sono particolarmente utili per i parametri delle funzioni che accettano più formati di input:

function printId(id: number | string): ()
    print(id)
end

printId(42)          -- funziona con un numero
printId("user123")   -- funziona con una stringa

Conosci già string?. È stata la tua prima unione! È semplicemente una forma abbreviata di string | nil. Nella prossima lezione imparerai a lavorare in sicurezza con un valore di unione dopo averne ottenuto uno.

challenge icon

Sfida

Facile

Accetta un valore che sia un numero o una stringa.

  1. Scrivi local function printId(id: number | string): () che stampa id.
  2. Dichiara local status: string | number = "active".
  3. Chiama printId(7) e printId("player7"), poi imposta status = 200 e stampalo.

Premi Esegui codice: l'output mostra 7, player7 e 200.

Provalo tu

-- 1) printId(id: number | string): ()
-- 2) local status: string | number = "active"
-- 3) chiama printId(7) e printId("player7"), imposta status a 200 e stampalo

Tutte le lezioni di Introduzione a Luau

Esercitati da solo: Compilatore Luau online