Dodawanie i odczytywanie elementów
Część sekcji Wprowadzenie do Luau ścieżki Lua w Coddy. Lekcja 14 z 80.
Już wiesz, jak zwiększać i zmniejszać rozmiar tabel 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: próba dodania ciągu znaków do tablicy {number} zostaje wykryta podczas pisania, zamiast dopiero zaskoczyć zdezorientowanego gracza w trakcie 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 o jedną pozycję w dół. Ponieważ tablica ma typ {string}, Luau wie, że zwrócona wartość jest ciągiem znaków.
Odczyt jest równie tolerancyjny jak w zwykłym Lua: indeks, pod którym nic się nie znajduje, queue[0], queue[-1] lub indeks większy niż #queue po cichu daje w wyniku nil. Nie pojawia się żaden błąd, więc zanim użyjesz wartości, której istnienia nie masz pewności, sprawdź, czy nie jest równa nil.
Wyzwanie
ŁatwyRozwijaj i skracaj typowaną listę ruchów.
- Zadeklaruj
local moves: {string} = {"jump", "run"}. - Dopisz
"duck"za pomocątable.insert, a następnie wstaw"crawl"na pozycji 1. - Zapisz
table.remove(moves)wlocal removed, a następnie wypiszremoved,#moves,moves[1]imoves[10].
Naciśnij Uruchom kod: dane wyjściowe pokazują duck, 3, crawl i nil.
Spróbuj swoich sił
-- 1) zadeklaruj moves: {string} z wartościami "jump" i "run"
-- 2) dodaj "duck" na końcu, wstaw "crawl" na pozycji 1
-- 3) usuń ostatni ruch, a następnie wypisz cztery wartości
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