Dodawanie i odczytywanie elementów
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 14 z 73.
Potrafisz już powiększać i pomniejszać tabele Lua za pomocą table.insert i table.remove: obie funkcje działają dokładnie tak samo w przypadku tablic typowanych. Różnica polega na tym, że Luau teraz sprawdza, co wstawiasz: dodanie ciągu znaków do tablicy {number} zostaje oznaczone już podczas pisania, zamiast zostać odkryte przez zdezorientowanego gracza w czasie działania programu.
local queue: {string} = {"save", "load"}
table.insert(queue, "quit") -- dodaj na końcu
table.insert(queue, 1, "help") -- wstaw na pozycji 1, przesuwając pozostałe elementy
local last = table.remove(queue) -- usuwa ORAZ zwraca ostatni elementtable.remove(t) usuwa ostatni element i zwraca go; table.remove(t, 1) usuwa pierwszy element i przesuwa wszystkie pozostałe w dół. Ponieważ tablica ma typ {string}, Luau wie, że zwrócona wartość jest ciągiem znaków.
Odczyt jest równie wyrozumiały jak w zwykłym Lua: indeks, pod którym nic się nie znajduje, queue[0], queue[-1] lub indeks większy niż #queue daje po cichu wartość nil. Nie pojawia się żaden błąd, więc sprawdź, czy wartość ma wartość nil, zanim jej użyjesz, jeśli nie masz pewności, że istnieje.
Jeszcze jedno narzędzie do Twojego zestawu: table.freeze(t) sprawia, że tabela jest tylko do odczytu w czasie działania programu: każda późniejsza próba jej modyfikacji powoduje błąd. To odpowiednik stałych danych w Luau (konfiguracji, niezmiennych list poziomów), których nie wolno zmieniać po utworzeniu.
Wyzwanie
ŁatwyUtwórz typowaną tablicę queue: {string} zainicjalizowaną wartościami "save" i "load". Następnie:
- dodaj na końcu
"<code>quit" za pomocątable.insert - wstaw
"<code>help" na pozycji 1 - usuń ostatnie polecenie za pomocą
table.remove, zapisując zwróconą wartość
Na koniec wypisz, każdą wartość w osobnym wierszu:
- usunięte polecenie
- liczbę pozostałych poleceń
- pierwsze polecenie w kolejce
queue[10]: miejsce, w którym nic się nie znajduje
Spróbuj swoich sił
-- Napisz kod tutaj
-- 1) zadeklaruj queue: {string} z "save" i "load"
-- 2) dodaj na końcu dokładny tekst z instrukcji, wstaw dokładny tekst z instrukcji na pozycji 1
-- 3) usuń ostatnie polecenie, a następnie wypisz cztery wartości
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