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 ustawionoKontroler 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.
Wyzwanie
ŁatwyProwadź typowaną mapę przyborów szkolnych.
- Zadeklaruj
local stock: {[string]: number} = {pens = 40, rulers = 15}. - Dodaj
stock["erasers"] = 25i zmieńrulersna10. - Wypisz zapas
pens,rulers,erasersiglue, 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
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