2012-05-27 43 views
1

我們需要序列化包含字符串,數字,表格和函數的Lua表格。在編程Lua書中有代碼序列化由字符串,數字和表組成的表格。我們試圖調整這個函數來增加序列化函數的能力。具體而言,我們在功能上增加了一個案例類型==「功能」和稱爲string.dump:序列化Lua表,包括純粹的Lua函數?

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) 

任何想法?

回答