Menu
Coddy logo textTech

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 element

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

challenge icon

Wyzwanie

Łatwy

Utwórz typowaną tablicę queue: {string} zainicjalizowaną wartościami "save" i "load". Następnie:

  1. dodaj na końcu "<code>quit" za pomocą table.insert
  2. wstaw "<code>help" na pozycji 1
  3. usuń ostatnie polecenie za pomocą table.remove, zapisując zwróconą wartość

Na koniec wypisz, każdą wartość w osobnym wierszu:

  1. usunięte polecenie
  2. liczbę pozostałych poleceń
  3. pierwsze polecenie w kolejce
  4. 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
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