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ą tablicy, Lua udostępnia wyspecjalizowaną funkcję o nazwie ipairs(), zaprojektowaną specjalnie do obsługi tablic w formie listy. Ta funkcja iteruje po elementach tablic w kolejności sekwencyjnej, zaczynając od indeksu 1 i kontynuując, aż napotka wartość nil.
Składnia funkcji ipairs() jest podobna do składni pairs():
for index, value in ipairs(myList) do
-- użyj tutaj index i value
endOto przykład z listą przedmiotów z zadania:
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 po znalezieniu wartości nil, nawet jeśli za nią znajdują się kolejne elementy.
Wyzwanie
ŁatwyNapisz funkcję listTasks, która przyjmuje tablicę tasks i zwraca sformatowany ciąg znaków zawierający wszystkie zadania wraz z ich numerami porządkowymi.
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 po nim jego nazwę w formacie number. task. Każde zadanie powinno znajdować się w osobnym wierszu.
Parametry:
tasks(tablica): Tablica 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 tutaj kod
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