0

lua では、関数を (上位値なしで) シリアル化し、 LOADSTRING を使用せずに保存することは可能ですか?

4

1 に答える 1

2

loadstringまったく使用せずにシリアライズして保存できますstring.dumploadstringそれらをデシリアライズしたい場合にのみ必要です。

後で実際の関数を再利用する必要がある場合 (比較などの他の単純な目的ではなく)、少なくとも文字列バージョンの にアクセスする必要がありますloadstring。これは、Lua ソースをオンザフライで評価できる唯一の機能であるためです。 .

1) アクセスできる場合は、Lua エンジン自体を変更して、関数定義のソース コードをどこかに保存します。2) Lua 内の Lua ソースコンバーターに Lua バイトコードを書き込みます。Lua の単純な VM を使用すれば、思ったほど難しい作業ではありません。

まったくアクセスできない場合はloadstring、Lua で Lua VM を作成してみてください。これは、単純なコンバーターよりも難しい作業ですが、それでもかなり実行可能です。

于 2012-05-29T17:44:23.053 に答える