Что такое pairs
Общий итератор для таблиц.
Обходит все ключи, порядок не гарантирован.
Пример кода:
t = { a = 1, b = 2, [3] = "hello" }
for k, v in pairs(t) do
print(k, v)
end
Что такое ipairs
Итератор для «массива» (числовые последовательные индексы от 1).
Останавливается на первом nil.
Пример кода:
t = { "one", "two", "three" }
for i, v in ipairs(t) do
print(i, v)
end
Важный момент: «дыры» в массивах
t = { "one", nil, "three" }
for i, v in ipairs(t) do
print(i, v)
end
ipairs остановится на первом nil.
pairs обойдёт все ключи.
Когда использовать
ipairs → строго массивы, без пропусков.
pairs → словари, смешанные таблицы, «дырявые» массивы.