将Lua中的函数参数arg转发。

我想重写一个函数以检查其参数值,但要像通常一样调用它并传递原始参数。这可能吗?我正在使用 www.coronalabs.com 的 Corona SDK

目前我的代码是这样的,但并不起作用:

--获取对原始函数的引用,以便我可以用我的覆盖函数替换它
local newcircle = display.newCircle

--我的覆盖函数
display.newCircle = function(...)
--尝试将这个函数的参数传递给真正的函数
local t = {...}
newcircle(unpack(t))
end

--调用被覆盖的函数就像通常一样
display.newCircle( display.newGroup(), "image.png" )
点赞
用户1008957
用户1008957

在你新的display.newCircle实现中,你正在使用未定义的t表和已弃用的arg自动表。

试试这个:

-- 我的覆盖
display.newCircle = function(...)
    local t = {...} -- 你需要收集参数到一个表中
    -- override 的愚蠢使用
    print(t[1])
    -- 尝试将这个函数的参数传递给实际函数
    newcircle(unpack(t))
end
2012-11-08 09:57:05