|
|
||
|
Am 11.05.2010 19:22, schrieb Patrick Donnelly:
function f(x,...) print(#...) end f(1,2,3,4)stdin:1: attempt to get length of a number value It doesn't work, because "#..." expands to "#2,3,4" which doesn't make sense.
local function f(...)
print(#{...})
end
f("A","B","C")
works fine and prints 3 (at the cost of creating a temporary table)
1 [4] GETGLOBAL 1 -1 ; print
2 [4] NEWTABLE 2 0 0
3 [4] VARARG 3 0
4 [4] SETLIST 2 0 1 ; 1
5 [4] LEN 2 2
6 [4] CALL 1 2 1
7 [5] RETURN 0 1