Enumy tekstowe jako unie
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 53 z 73.
Liczby tworzą nieczytelne logi: gdy widzisz 2, niewiele ci to mówi, a gdy widzisz "down", wiesz wszystko. Do czytelnych enumów służą typy unii literałów w Luau: typ, którego elementami są dokładne ciągi znaków:
type Direction = "up" | "down" | "left" | "right"
local facing: Direction = "up" -- ✓
local typo: Direction = "upp" -- ✗ błąd typu podczas edycjiZmienna opisana typem Direction może przechowywać te cztery ciągi znaków i nic poza nimi. Jeśli popełnisz literówkę, kontroler typów natychmiast ją wychwyci: błąd nigdy nie dotrze do gracza.
W czasie działania programu wartościami są zwykłe ciągi znaków. Wypisuj je, łącz je, porównuj za pomocą ==. Wszystko, co wiesz o ciągach znaków, ma tu zastosowanie:
print(facing) -- w górę
print(`facing {facing}`) -- facing w góręPorównaj teraz te dwa dostępne wzorce: tabela stałych tworzy jedną wartość w czasie działania programu (UserRole) zawierającą elementy, podczas gdy unia literałów nie tworzy żadnej wartości. Nie ma tabeli Direction, jest tylko reguła, której przestrzegania kontroler typów pilnuje, określając, które ciągi znaków są dozwolone. Opisowe, samodokumentujące się wartości bez żadnego kosztu w czasie działania programu sprawiają, że unie literałów to preferowany styl zapisu enumów w kodzie Luau.
Wyzwanie
ŁatwyUtwórz typ unii literałów o nazwie Direction z elementami "up", "down", "left" i "right".
Utwórz cztery zmienne, każdą z adnotacją typu Direction:
upDirection="up"downDirection="down"leftDirection="left"rightDirection="right"
Wypisz, każdą wartość w osobnym wierszu:
upDirectiondownDirectionleftDirectionrightDirection- komunikat
The player moves left, utworzony za pomocą interpolacji ciągu znaków zleftDirection
Spróbuj swoich sił
-- Napisz tutaj kod
-- 1) zdefiniuj typ Direction jako unię czterech literałów tekstowych
-- 2) utwórz cztery zmienne z adnotacjami typów
-- 3) wypisz każdą z nich, a następnie interpolowany komunikat
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