Skip to content

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

関連項目