Menu
CoddyTech

Deklarowanie i uzyskiwanie dostępu do map

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

Deklarowanie typowanej mapy wygląda tak samo jak konstruktory tabel, których zawsze używasz: adnotacja określa tylko typy kluczy i wartości:

local stock: {[string]: number} = {apples = 12, bananas = 5}

Odczyt i zapis używają znanego Ci indeksowania. W przypadku kluczy będących prawidłowymi identyfikatorami stock.apples i stock["apples"] odwołują się do tego samego elementu; zapis z nawiasami kwadratowymi obsługuje też klucze zawierające spacje lub przechowywane w zmiennych:

stock["cherries"] = 20   -- dodaj nowy wpis
stock.bananas = 8        -- zaktualizuj istniejący wpis
print(stock["apples"])  -- 12
print(stock["plums"])   -- nil: nigdy nie ustawiono

Kontroler typów sprawdza każdy zapis: stock["apples"] = "many" zostaje oznaczone jako błąd, ponieważ "many" nie jest liczbą, a użycie liczby jako klucza również zostaje oznaczone jako błąd, ponieważ klucze muszą być ciągami znaków.

Aby usunąć element, przypisz nil do jego klucza: stock["bananas"] = nil całkowicie go usuwa, a późniejsze odczyty zwracają nil. Nie ma osobnej funkcji usuwającej; to standardowy idiom Lua, który nadal przechodzi kontrolę typów w przypadku mapy.

challenge icon

Wyzwanie

Łatwy

Prowadź typowaną mapę przyborów szkolnych.

  1. Zadeklaruj local stock: {[string]: number} = {pens = 40, rulers = 15}.
  2. Dodaj stock["erasers"] = 25 i zmień rulers na 10.
  3. Wypisz zapas pens, rulers, erasers i glue, po jednym w każdym wierszu.

Naciśnij Uruchom kod: wynik pokaże 40, 10, 25 i nil.

Spróbuj swoich sił

-- 1) zadeklaruj stock: {[string]: number} z pens = 40, rulers = 15
-- 2) dodaj erasers = 25, zmień rulers na 10
-- 3) wypisz pens, rulers, erasers, a następnie glue

Wszystkie lekcje w sekcji Wprowadzenie do Luau

Poćwicz samodzielnie: Kompilator Luau online