[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Ellipsis Operator Question
- From: Tysen Moore <tsmoore248@...>
- Date: Fri, 4 Oct 2013 07:08:52 -0400
I
 have a question regarding the usage of the ellipsis ("...").  I am 
seeing some sort of conflict with the hidden "arg" variable and the 
ellipsis.  If I mix usage
in a function I get bad results--arg goes nil.  I have successfully used
 this operator in the past but somehow avoided this particular use 
case.  I was wondering if this is a bug or expected behavior.  I am 
testing under Ubuntu with Lua v5.1.4 as well as an
embedded ARM target running Lua v5.1.5.
This example works fine:
function foo( ... )
    print( "ARGS: ", arg )
    for k,v in pairs(arg) do
        print( k,v )
    end    
end
foo( "some", true, 1 )
OUTPUT:
ARGS:     table: 0x1750cb0
1    some
2    true
3    1
n    3
If I add a reference to ellipsis in foo() I get a nil for arg.  I can 
also move the offending line to the end of the function (or anywhere for
 that matter) and I get the nil arg error.
function foo( ... )
    local t = ...                      -- Can be anything: type(...), print(...)
    print( "ARGS: ", arg )
    for k,v in pairs(arg) do
        print( k,v )
    end    
end
foo( "some", true, 1 )
OUTPUT:
ARGS:     nil
lua: /home/tmoore/junk.lua:9: bad argument #1 to 'pairs' (table expected, got nil)
stack traceback:
    [C]: in function 'pairs'
    /home/tmoore/junk.lua:9: in function 'foo'
    /home/tmoore/junk.lua:13: in main chunk
    [C]: ?
Any insight would be appreciated.