原函数
function changenumbers (limit, delta)
for linein io.lines() do
line = string.gsub(line, "%d+", function (num)
num = tonumber(num)
if num >= limit then return tostring(num + delta) end
-- else return nothing, keeping the original number
end)
io.write(line, "\n")
end
end
修改后,不仅可以提高可读性,还可以提升性能
function changenumbers (limit, delta)
local function aux (num)
num = tonumber(num)
if num >= limit then return tostring(num + delta) end
end
for linein io.lines() do
line = string.gsub(line, "%d+", aux)
io.write(line, "\n")
end
end