Menu
Coddy logo textTech

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
end

Oto przykład z listą przedmiotów z zadania:

local questItems = {"Map", "Compass", "Torch", "Rope"}

for i, item in ipairs(questItems) do
    print(i .. ". " .. item)
end

Wynik:

1. Map
2. Compass
3. Torch
4. Rope

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

challenge icon

Wyzwanie

Łatwy

Napisz 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. task3

Spróbuj swoich sił

function listTasks(tasks)
    -- Wpisz tutaj kod
end
quiz iconSprawdź się

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

Poćwicz samodzielnie: Kompilator Lua online