Menu
Coddy logo textTech

Итерация с помощью ipairs()

Часть раздела Логика и управление потоком путешествия по Lua на Coddy. Урок 2 из 54.

Хотя pairs() работает с любой структурой таблицы, Lua предоставляет специальную функцию под названием ipairs(), разработанную специально для таблиц в виде списков. Эта функция перебирает таблицы в последовательном порядке, начиная с индекса 1 и продолжая, пока не встретит значение nil.

Синтаксис ipairs() похож на синтаксис pairs():

for index, value in ipairs(myList) do
    -- используйте index и value здесь
end

Вот пример со списком предметов задания:

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

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

Output:

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

Ключевое отличие от pairs() заключается в том, что ipairs() немедленно останавливается, когда обнаруживает значение nil, даже если после него есть другие элементы.

challenge icon

Задание

Легко

Напишите функцию listTasks, которая принимает таблицу tasks и возвращает отформатированную строку со списком всех задач и их порядковыми номерами.

Используйте ipairs(), чтобы перебирать задачи в последовательном порядке и создавать строку, в которой каждая строка содержит номер задачи, за которым следует имя задачи, в формате number. task. Каждая задача должна находиться на отдельной строке.

Параметры:

  • tasks (таблица): Таблица в виде списка, содержащая имена задач в виде строк

Возвращает: Строку, в которой каждая задача пронумерована и находится на отдельной строке. Формат: 

1. task1
2. task2
3. task3

Попробуйте сами

function listTasks(tasks)
    -- Напишите код здесь
end
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Lua