Menu
Coddy logo textTech

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 edycji

Zmienna 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.

challenge icon

Wyzwanie

Łatwy

Utwó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:

  1. upDirection
  2. downDirection
  3. leftDirection
  4. rightDirection
  5. komunikat The player moves left, utworzony za pomocą interpolacji ciągu znaków z leftDirection

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
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