Каким образом pairs и for различают переменные ключе от значений?
Подскажите пожалуйста. Почему в цикле for не используется пропускаемая переменная _ то есть почему for не выглядит как for k, _, in pairs() Я так понимаю если указана только одна переменная для итератора то она получает ключ, верно?
function Set.union (a, b)
local res = Set.new{}
for k in pairs(a) do res[k] = true end
for k in pairs(b) do res[k] = true end
return res
end
Второй пример. Если нам требуется обойти эту таблицу, мы должны определить в посреднике запись __pairs:
mt.__pairs =
function ()
return function (_, k)
return next(_t, k)
end
end
Какой аргумент и от кого пропустит _, в данном примере?