lua表中的函数

时间:2018-05-08 18:51:50

标签: lua lua-table

我有 someTabe = {}

someTabe.foo = function (x,y) return x + y end

我怎样才能获得品脱(function"(function (x,y) return x + y end)???不返回结果。

3 个答案:

答案 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