level 13
“完美”是指,不管原来的函数有多少个返回值,都能够原模原样地保留并在重载的函数里返回。
如果返回值在新的重载函数中不会被使用到的话,那么很简单,像这样就行了:
function FuncOne(x)
return x + 1, x - 1
end
local l_fnOneOld = FuncOne
FuncOne = function(x)
print("这是新版本的FuncOne")
return l_fnOneOld(x)
end
但是如果重载函数中需要用到原来的函数的返回值的话,那么就会发生截断,就不知道怎么办了,除非对原来的函数的返回值个数做出规定。有没有能够普遍适用的方法呢?
2018年05月10日 02点05分
1
如果返回值在新的重载函数中不会被使用到的话,那么很简单,像这样就行了:
function FuncOne(x)
return x + 1, x - 1
end
local l_fnOneOld = FuncOne
FuncOne = function(x)
print("这是新版本的FuncOne")
return l_fnOneOld(x)
end
但是如果重载函数中需要用到原来的函数的返回值的话,那么就会发生截断,就不知道怎么办了,除非对原来的函数的返回值个数做出规定。有没有能够普遍适用的方法呢?