Typy literałowe
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 35 z 80.
Typy takie jak string dopuszczają dowolny ciąg znaków, ale czasami sens ma tylko kilka konkretnych wartości. Typ literałowy wykorzystuje samą wartość jako typ:
local mode: "dark" = "dark" -- dozwolony jest tylko ciąg znaków "dark"
local locked: true = true -- dozwolona jest tylko wartość logiczna trueSame w sobie typy o jednej wartości są jedynie ciekawostką. W połączeniu z uniami stają się jednym z najbardziej przydatnych narzędzi Luau: ściśle kontrolowanym zbiorem dozwolonych wartości:
type Direction = "north" | "south" | "east" | "west"
type GameState = "menu" | "playing" | "paused" | "gameover"
local move: Direction = "north" -- ✓
local state: GameState = "playing" -- ✓
-- local bad: Direction = "diagonal" -- ✗ błąd typu!Teraz literówka, taka jak "nort", lub nieprawidłowa wartość, taka jak "diagonal", zostanie wykryta podczas edycji. Przy zwykłym typie string kod przeszedłby bez problemu i spowodował błąd w czasie działania — jeśli dopisze ci szczęście i go zauważysz.
Typy literałowe rozróżniają wielkość liter i wymagają dokładnej zgodności: "North" nie pasuje do "north". Najczęściej używa się literałów tekstowych, ale literały logiczne oraz (w nowszych wersjach Luau) liczbowe działają tak samo. Ten wzorzec, czyli unia literałów tekstowych, jest też sposobem, w jaki Luau zastępuje typy wyliczeniowe z innych języków, o czym przekonasz się w późniejszym rozdziale.
Wyzwanie
ŁatwyDozwolone są tylko cztery dokładne nazwy kierunków.
- Napisz
type Direction = "north" | "south" | "east" | "west". - Napisz
local function movePlayer(direction: Direction): string, która zwraca`Moving {direction}`. - Zadeklaruj
local playerDirection: Direction = "east"i wyświetlmovePlayer(playerDirection).
Naciśnij Run Code: wynik to Moving east.
Spróbuj swoich sił
-- 1) type Direction = "north" | "south" | "east" | "west"
-- 2) movePlayer(direction: Direction): string
-- 3) local playerDirection: Direction = "east", a następnie wypisz ruch
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 niezwracające wartościParametry opcjonalneDomyślne wartości parametrówWartości domyślne dla typów BooleanFunkcje wariadyczneDefiniowanie typów funkcjiPodsumowanie: funkcje z typami2Podstawowe typy
Number, String i BooleanTyp 'any': wyjście awaryjneTyp 'unknown'Nil i typy opcjonalneInferencja typów w praktyceJawne adnotacje typówPowtórka: ćwiczenia z podstawowych typów5Aliasy, 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ów3Typowane tabele: tablice i mapy
Typowane tabliceDodawanie i odczytywanie elementówCzym jest typ mapy?Deklarowanie i uzyskiwanie dostępu do mapIterowanie po tabelachTabele o mieszanej strukturzeOdczytywanie siatkiTworzenie siatkitable.unpackPodsumowanie: tablice i mapyPoćwicz samodzielnie: Kompilator Luau online