Наткнулся в lua вот на такую непонятную хрень:local function foo(...)
local str = 'text:'
local txt = {...}
for s=1, #txt do
str = str .. ' ' .. tostring(txt[s])
end
print(str)
end
local function bar(a, b, c, d, e, f, g, h, i, j, k)
foo(a, b, c, d, e, f, g, h, i, j, k)
end
local tt = nil
foo('foo test', 1, foo, 2, nil, 3, tt, 4, 'fin')
bar('bar test', 1, foo, 2, nil, 3, tt, 4, 'fin')
выводит text: foo test 1 function: 0xb370c0 2 nil 3 nil 4 fin
text: bar test 1 function: 0xb370c0 2
T.e. если у нас nil передаётся в многоточие напрямую или из переменной, то оно нормально проходит. А вот если он берется из аргументов функции, то на этом всё обрывается.
Это что — баг в луа? Или я что-то не понимаю? Можно ли это как-то обойти?