迁移到 5.1 |
|
function catchall( ... ) for i=1,arg.n do print( "Argument #", i, "is", arg[ i ] ) end -- Pass all arguments to another function show3( unpack( arg ) ) end function show3( a, b, c ) print( a, b, c ) end catchall( nil, 'two', nil ) --> Argument # 1 is nil --> Argument # 2 is two --> Argument # 3 is nil --> nil two nil
function catchall( ... ) -- Make a new table of values local theArguments = { ... } for i=1,select( '#', ... ) do print( "Argument #", i, "is", theArguments[ i ] ) end -- Pass all arguments to another function show3( ... ) end function show3( a, b, c ) print( a, b, c ) end catchall( nil, 'two', nil ) --> Argument # 1 is nil --> Argument # 2 is two --> Argument # 3 is nil --> nil two nil
ipairs()
将在第一个嵌入的 nil
值处停止;
#
(长度运算符)[可能] 在第一个嵌入的 nil
值处停止;
table.maxn()
将跳过嵌入的 nil
值;但是
select( '#', ... )
允许你看到用户传递了尾随的 nil
值。
if (index < 0 && -index <= top) index = top+index+1; my* = luaL_check*(L, index, ...);
loadlib
的情况,使用 5.1 package.loadlib