При работе с функцией (v1, v2, v3) или функцией (...), похоже, не существует хорошего способа обработки изменений в месте расположения аргументов при вызове функции.
Пример функции:
my_function(v1,v2,v3) {
print(v1, v2, v3)
}
Пример аргументов Функция:
my_args_func(...) {
local arg = {...}
for i,v in ipairs(arg) do
print(v)
end
}
Из приведенных выше 2 примеров вы можете сделать
my_function(set1,set2,set3)
my_arg_func(set1,set2,set3)
Но если вы хотите внести изменениядля любого из них управление всеми обновлениями параметров функций становится одним и тем же делом.
Скажем, мы хотим добавить новое значение для обеих функций. newval10.
my_function () мы были бы вынуждены положить его в конец, как my_function (v1, v2, v3, newval10), иначе все не будет работать правильно, если мы не обновим и вызов, и функциюпараметры, которые он принимает.
То же самое касается func (...), где мы знаем только значение индекса и фактическое значение. не то, что они представляют. Есть ли способ иметь такую функцию, как
local my_generic_func(...) {
-stuff goes here
}
if my_generic_func(v1,v2,v3) then return end
, которая может быть обновлена с помощью my_generic_func (v1, v5, v3, v4, v2), и функция будет знать, где на самом деле находится каждое значение.