Есть ли способ передать кортеж в качестве параметров функции Lua?Как передать кортеж в качестве аргументов функции Lua?
Например, у меня есть функция, которая возвращает несколько значений
function f(a,b) return b,a end
и я хочу эту функцию f
быть повторно применен, так что я могу написать:
f (f ... f(1,2))
Но что если мне нужно для хранения этого исходного кортежа (1,2)
как переменная init
?
f (f ... f(init))
Есть ли поддержка для этого?
Согласно this answer, кажется, что у python это с оператором splat *
.
"* так что я могу написать *" Это неправда Lua. 'f ... f' не является легальным синтаксисом Lua. Поэтому я не понимаю, чего ты хочешь здесь. –
[Эта страница] (http://lua-users.org/wiki/FunctionalTuples) может вам помочь. – Thelmund
@NicolBolas Вы можете написать, например. 'f (f (1,2)), f (f (f (1,2))) и т. д. для любого числа приложений' f'. Это то, что я имел в виду с '...' и 'повторно применять '. – tinlyx