Deklarowanie map i dostęp do nich
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 16 z 73.
Deklarowanie typowanej mapy wygląda tak jak konstruktory tabel, które zawsze pisałeś: adnotacja określa jedynie typy kluczy i wartości:
local stock: {[string]: number} = {apples = 12, bananas = 5}Odczytywanie i zapisywanie wykorzystuje znane Ci indeksowanie. W przypadku kluczy będących prawidłowymi identyfikatorami stock.apples i stock["apples"] wskazują ten sam wpis; zapis nawiasowy 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 ustawionoSprawdzanie typów kontroluje każdy zapis: stock["apples"] = "many" zostanie oznaczone jako błąd, ponieważ "many" nie jest liczbą, a użycie liczby jako klucza również zostanie oznaczone jako błąd, ponieważ klucze muszą być ciągami znaków.
Aby usunąć wpis, przypisz nil do jego klucza: stock["bananas"] = nil całkowicie go usuwa, a późniejsze odczyty zwracają nil. Nie ma osobnej funkcji usuwania; to standardowy idiom Lua, który nadal przechodzi sprawdzanie typów w mapie.
Wyzwanie
ŁatwyUtwórz typowaną mapę stock: {[string]: number} zainicjalizowaną wartościami apples = 12 i bananas = 5. Następnie:
- dodaj nowy wpis
cherrieso wartości20 - zaktualizuj
bananasna8
Na koniec wypisz, każdy element w osobnym wierszu:
- zapas
apples - zapas
bananas - zapas
cherries - zapas
plums: klucz, którego nigdy nie ustawiasz
Spróbuj swoich sił
-- Napisz kod tutaj
-- 1) zadeklaruj stock: {[string]: number} z apples = 12, bananas = 5
-- 2) dodaj cherries = 20, zaktualizuj bananas do 8
-- 3) wypisz apples, bananas, cherries, a następnie plums
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ów3Typowane 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