Menu
Coddy logo textTech

Wzorzec enumów w Luau

Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 51 z 73.

Programy są pełne wartości pochodzących z niewielkiego, stałego zbioru: zamówienie ma status oczekujące, wysłane lub dostarczone; gracz jest zwrócony w górę, w dół, w lewo lub w prawo. Wiele języków ma do tego słowo kluczowe enum. Luau go nie ma i nie potrzebuje go, ponieważ do tego celu wystarczą dwa narzędzia, które już znasz.

Wzorzec 1: tablica stałych. Zwykła tablica przypisuje znaczące nazwy do wartości, zastępując „magiczne liczby” porozrzucane po kodzie:

local Status = {
    Pending = 1,
    Active = 2,
    Done = 3,
}

print(Status.Active) -- 2

To rzeczywista wartość w czasie wykonywania: możesz odczytać Status.Active, porównać z nią inne wartości i przekazywać ją dalej, tak jak w przypadku tablic używanych do tej pory.

Wzorzec 2: unia literałów. Typ złożony z dokładnych wartości tekstowych, wykorzystujący typy literałowe poznane w rozdziale o uniach:

type Color = "red" | "green" | "blue"
local favorite: Color = "green" -- ✓
local oops: Color = "yellow"    -- ✗ błąd typu

Unia istnieje wyłącznie na potrzeby weryfikatora i nie wiąże się z żadnym kosztem w czasie wykonywania, ale gwarantuje, że zmienna nie może przechowywać wartości spoza zbioru. Te dwa wzorce się uzupełniają: tablica zapewnia wartości w czasie wykonywania dostępne pod jedną nazwą, a unia daje gwarancję na etapie kompilacji. Później w tym rozdziale poznasz też table.freeze, które chroni tablicę stałych przed modyfikacją w czasie wykonywania.

Spróbuj swoich sił

Ta lekcja nie zawiera wyzwania z kodem.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Wprowadzenie do Luau

Poćwicz samodzielnie: Kompilator Luau online