【发布时间】:2017-10-09 16:24:20
【问题描述】:
比如说我做了一个函数,它的目的是分析另一个作为参数提供的函数,并返回指定的函数是否会返回任何东西,如果是,它将返回什么值。
local function CheckFunctionReturn(func)
--return whether func would return anything.
end
local function myFunc()
return 123;
end
CheckFunctionReturn(myFunc);
我被这个困住了。也许调试库中有一个可以提供帮助的函数?我将不胜感激。
【问题讨论】:
-
你可以得到
string.dump(func)并分析这个函数返回值的字节码(搜索RETURN A B操作码,B=1表示没有返回值)。 -
另见 lbci - webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/index.html#lbci的字节码检查器库
-
但这似乎是XY problem...你真正想解决什么问题?
-
@mikebayko 这使它看起来像是一个XY问题。你为什么要确定这一点?目的是什么?
-
@mikebayko:换一种说法吧。我想不出为什么我会需要甚至问这样一个函数问题。如果您不知道函数将返回什么,那么您可能不知道该函数将为您完成什么。因此,你没有理由调用它,因为你只是调用函数来让它们做某事。如果您希望能够捕获函数的返回值而不管有多少,那么您的问题是无用的(和the answer to that is easy)。那么为什么你需要知道呢?
标签: function lua return-value