someTabe.foo = function (x,y)
return x + y
end
我怎样才能获得品脱(function"(function (x,y) return x + y end
)???不返回结果。
答案 0 :(得分:1)
您无法从Lua内部恢复函数的源代码。
> print(someTabe.foo)
function: 0x7fed0bc091f0
这告诉您someTabe.foo
包含一个函数,该函数已转换为存储在显示地址的内部表示。
如果需要从Lua内部恢复函数的源代码,则需要使用load手动编译它,然后使用调试库获取源代码。
答案 1 :(得分:0)
如果您只是想查看代码,可以在线查找反编译器。但是在你自己的代码中是不可能的。
答案 2 :(得分:0)
您无法获取代码,但您可以使用string.dump()
获取字节码:
local f = function(x,y) print('AAA') end)
local bytecode = string.dump(f) -- Get bytecode of function
local f2 = load(f) -- It is copy of f, but (f ~= f2)
f2() -- prints AAA