Ребята помогите кто нибудь пожалуйста
Вообщем изучаю Луа, читаю 3-е издание есть один момент непонятный
Разложение символов табуляции на пробелы
У пустого захвата наподобие '()' в Lua есть особое значение. Вместо
того, чтобы не захватывать ничего (довольно бесполезное занятие),
этот образец захватывает свою позицию в обрабатываемой строке как
число:
print(string.match("hello", "()ll()")) --> 3 5
(Обратите внимание, что результат этого примера отличается от
результата вызова string.find, поскольку позиция второго пустого
захвата следует после совпадения с образцом.)
Прекрасным примером использования позиционных захватов
является разложение символов табуляции в строке на пробелы:
function expandTabs (s, tab)
tab = tab or 8 -- tab "size" (default is 8)
local corr = 0
s = string.gsub(s, "()\t", function (p)
local sp = tab - (p - 1 + corr)%tab
corr = corr - 1 + sp
return string.rep(" ", sp)
end)
return s
end
Вот в строчке local sp = tab - (p - 1 + corr)%tab мне что то не понятен там смысл знака % и выражения (p - 1 + corr)%tab