2

我们需要序列化一个包含字符串、数字、表和函数的 Lua 表。Programming Lua 书中有代码可以序列化由字符串、数字和表格组成的表格。我们试图调整这个函数来增加序列化函数的能力。具体来说,我们为 type == 'function' 添加了一个案例,并在函数上调用了 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)

有任何想法吗?

4

1 回答 1

1

有关许多实现,请参阅wiki 页面

托尼芬奇的版本可能适合你。

于 2012-05-27T02:31:10.097 回答