Desde el manual de Lua:
If index is a number, returns all arguments after argument number
index. Otherwise, index must be the string "#", and select returns
the total number of extra arguments it received.
Lua has built in multiple arguments, que se puede convertir en una mesa si realmente necesita:
function multiple_args(...)
local arguments = {...} -- pack the arguments in a table
-- do something --
return unpack(arguments) -- return multiple arguments from a table (unpack)
end
Por último, si pasa "#" como índice, la función devuelve un conteo de los múltiples argumentos proporcionados d:
print(select("#")) --> 0
print(select("#", {1, 2, 3})) --> 1 (single table as argument)
print(select("#", 1, 2, 3)) --> 3
print(select("#", {1,2,3}, 4, 5, {6,7,8}) --> 4 (a table, 2 numbers, another table)
Ver esto website.
Por cierto, el ciclo se puede reemplazar por 'str = table.concat ({str, ...}," \ t ")'. – lhf
Sugeriría usar 'file: write()' aquí en lugar de concatenar la cadena y luego llamar 'os.execute()' - sería mucho más rápido. Es posible que desee "lavar" el archivo al final de la línea. –
gracias por las sugerencias de optimización – AlexStack