string.dump
関数のバイトコードを返す
lua
string.dump(f [,mode])
説明
指定した関数 f
のバイナリ表現(バイトコード)を含む文字列を返します。この文字列を後で loadstring
関数で読み込むと、元の関数を再現することができます。
補足
- LuaJIT の
string.dump
は、移植性のあるバイトコードを生成できます。オプションのmode
引数に"b"
(移植可能なバイトコード)や"t"
(ソースコードとしてダンプ)を指定できます。 - ダンプされたバイトコードは、Lua のバージョンや実装が異なる環境間では互換性がない場合があります。
- セキュリティ上の理由から、不信頼なソースから取得したバイトコードをロードすることは避けてください。
サンプルコード
lua
local f = function() print("Hello") end
local dumped = string.dump(f)
print(dumped)
この例では、関数のバイナリ表現が出力されます。
互換性
- Lua 5.1
- LuaJIT