我们需要序列化包含字符串,数字,表和函数的Lua表。 Programming Lua一书中有一些代码可以序列化由字符串,数字和表组成的表。我们尝试调整此函数以添加序列化函数的功能。具体来说,我们为type =='function'添加了一个case并在函数上调用了string.dump:
if type(o) == "number" then
return tostring(o)
elseif type(o) == "function" then
return "loadstring("..string.dump(o)..")"
else
-- assume it is a string
return string.format("%q", o)
end
这将Lua字节码注入到明文表表示的其余部分。这是我们最接近的事情。
我们不在乎他的序列化结果是否是人类可读的,它只需要能够像这样工作:
mytable = [some complicated lua table with functions]
dump = dump_t(mytable)
...
loaded_table = load_t(dump)
有什么想法吗?