2

文字列、数値、テーブル、関数を含むLuaテーブルをシリアル化する必要があります。プログラミング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 ページを参照してください。

Tony Finch のバージョンが役に立つかもしれません。

于 2012-05-27T02:31:10.097 に答える