Функция с переменным числом аргументов

Страницы: 1
RSS
Функция с переменным числом аргументов, Как узнать количество переданных в функцию аргументов?
 
В Lua 5.1 количество переданных значений в функцию содержалось в arg.n

Код
local function f(...)
  return arg.n
end
print(f(1, nil, nil))  --> 3

А в Lua 5.4 как?
 
Цитата
Незнайка написал:
в Lua 5.4

Нашел:
Код
local function f(...)
  local arg = {...}
  arg.n = select('#', ...)
  return arg.n
end

print(f(1, nil, nil))
 
Цитата
Незнайка написал:
Цитата
Незнайка написал:
в Lua 5.4

Нашел:
Код
   local   function  f( .. .)
   local  arg  =  { .. .}
  arg.n  =  select( '#' ,  .. .)
   return  arg.n
 end 

 print (f( 1 ,  nil ,  nil ))  
Зачем Вам это извращение в скриптах и индикаторах квика?
Вы же теряете ресурсы для раскрутки неопределенных параметров.
А смысла в переменном числе параметров именно в скриптах торговых роботов нет.
 
В Lua 5.4 есть table.pack

Код
local function f(...)
  local arg = table.pack(...)
  return arg.n
end

print(f(1, nil, nil))
Страницы: 1
Читают тему (гостей: 1)
Наверх