Lua возвращает несколько значений в качестве аргументов
У меня есть функция (которую я не могу изменить), возвращающая несколько значений:
function f1()
...
return a, b
end
и другая функция (которую я не могу изменить), принимающая несколько аргументов:
function f2(x, y, z)
...
end
Есть ли способ сделать:
f2(f1(), c)
а х быть а, у быть б и г быть с?
3 ответа
Решение
Вы не можете сделать это в одну строку, потому что f2(f1(),c)
корректирует результаты, возвращаемые f1
на одно значение.
Вы могли бы использовать промежуточные результаты
local a, b = f1()
f2(a, b, c)
Вы можете использовать таблицу в качестве помощника:
tbl={f1()}
tbl[3]=c
f2(unpack(tbl))