lua では、関数を (上位値なしで) シリアル化し、 LOADSTRING を使用せずに保存することは可能ですか?
質問する
855 次
1 に答える
2
loadstring
まったく使用せずにシリアライズして保存できますstring.dump
。loadstring
それらをデシリアライズしたい場合にのみ必要です。
後で実際の関数を再利用する必要がある場合 (比較などの他の単純な目的ではなく)、少なくとも文字列バージョンの にアクセスする必要がありますloadstring
。これは、Lua ソースをオンザフライで評価できる唯一の機能であるためです。 .
1) アクセスできる場合は、Lua エンジン自体を変更して、関数定義のソース コードをどこかに保存します。2) Lua 内の Lua ソースコンバーターに Lua バイトコードを書き込みます。Lua の単純な VM を使用すれば、思ったほど難しい作業ではありません。
まったくアクセスできない場合はloadstring
、Lua で Lua VM を作成してみてください。これは、単純なコンバーターよりも難しい作業ですが、それでもかなり実行可能です。
于 2012-05-29T17:44:23.053 に答える