Iterowanie za pomocą ipairs()
Część sekcji Logika i przepływ programu ścieżki Lua w Coddy. Lekcja 2 z 54.
Chociaż pairs() działa z dowolną strukturą tabeli, Lua udostępnia specjalną funkcję o nazwie ipairs(), przeznaczoną do tabel w formie listy. Ta funkcja iteruje po tabelach w kolejności sekwencyjnej, zaczynając od indeksu 1 i kontynuując aż napotka wartość nil.
Składnia ipairs() jest podobna do składni pairs():
for index, value in ipairs(myList) do
-- użyj tutaj index i value
endOto przykład listy przedmiotów zadań:
local questItems = {"Map", "Compass", "Torch", "Rope"}
for i, item in ipairs(questItems) do
print(i .. ". " .. item)
endWynik:
1. Map
2. Compass
3. Torch
4. RopeKluczowa różnica w porównaniu z pairs() polega na tym, że ipairs() zatrzymuje się natychmiast, gdy znajdzie wartość nil, nawet jeśli są po niej kolejne elementy.
Wyzwanie
ŁatwyNapisz funkcję listTasks, która przyjmuje tabelę tasks i zwraca sformatowany ciąg znaków zawierający listę wszystkich zadań wraz z numerami ich pozycji.
Użyj ipairs(), aby iterować po zadaniach w kolejności sekwencyjnej i utworzyć ciąg znaków, w którym każdy wiersz zawiera numer zadania, a następnie jego nazwę, w formacie number. task. Każde zadanie powinno znajdować się w osobnym wierszu.
Parametry:
tasks(tabela): tabela w stylu listy zawierająca nazwy zadań jako ciągi znaków
Zwraca: Ciąg znaków z każdym zadaniem ponumerowanym w osobnym wierszu. Format:
1. task1
2. task2
3. task3Spróbuj swoich sił
function listTasks(tasks)
-- Wpisz kod tutaj
end
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i przepływ programu
1Zaawansowane iterowanie po tabelach
Iterowanie za pomocą pairs()Iterowanie za pomocą ipairs()pairs() a ipairs()Powtórka — karta postaci2Więcej funkcji biblioteki table
table.concat()Tworzenie tabel i unpack()table.sort()Sortowanie niestandardowe za pomocą funkcjiPodsumowanie — tablica najlepszych wyników5Projekt: silnik tekstowej gry przygodowej
Konfiguracja projektu: pokójŁączenie pokoiPoćwicz samodzielnie: Kompilator Lua online