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) -- 2To 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 typuUnia 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.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Wprowadzenie do Luau
1Pierwsze kroki z Luau
Czym jest Luau?Dlaczego warto używać Luau?Twój pierwszy kod w LuauSprawdzanie typów i tryby błędówPodsumowanie: Wprowadzenie do Luau4Praca z funkcjami
Typowanie parametrów i wartości zwracanychTypowanie funkcji anonimowychFunkcje niczego nie zwracająceParametry opcjonalneDomyślne wartości parametrówFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Typy podstawowe
Typy podstawowe: num, str, boolTyp „any”: furtka awaryjnaTyp „unknown”Typy Nil i opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenie typów podstawowych5Aliasy, typy sumy i przekroju
Aliasy typów dla typów prostychTypy sumyPraca z typami sumyTypy literałoweTypy przekrojuŁączenie aliasów typówPodsumowanie: zaawansowane kombinacje typów8Enumy po luauowemu
Wzorzec enumów w LuauNumeryczne enumy z tabelamiEnumy tekstowe jako unieUżywanie enumów opartych na unii literałówZamrażanie stałych tabelPodsumowanie: enumy po luauowemu3Typowane tabele: tablice i mapy
Tablice typowaneDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie map i dostęp do nichIterowanie po tabelachTabele o mieszanej strukturzeWielowymiarowe tablice typowanetable.unpack i varargsPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online