Skip to content

luaL_Buffer

文字列バッファの型です。

c
typedef struct luaL_Buffer luaL_Buffer;

説明

文字列バッファの型です。

文字列バッファを使用すると、CコードでLua文字列を部分的に構築できます。使用パターンは次のとおりです:

まず、luaL_Buffer型の変数bを宣言します。 次に、luaL_buffinit(L, &b)を呼び出して初期化します。 次に、luaL_add*関数を呼び出してバッファに文字列片を追加します。 最後にluaL_pushresult(&b)を呼び出します。この呼び出しは最終的な文字列をスタックのトップに残します。 通常の操作中に、文字列バッファはスタックスロットを可変個数使用します。そのため、バッファを使用している間、スタックのトップがどこにあるかを知っているとは限りません。バッファ操作の間にスタックを使用する場合は、その使用がバランスを取っている限り(つまり、バッファ操作を呼び出すときにスタックが前回のバッファ操作直後のレベルにある限り)、使用することができます(唯一の例外はluaL_addvalueです)。luaL_pushresultを呼び出した後、スタックはバッファが初期化されたときのレベルに戻り、そのトップに最終的な文字列が置かれます。

サンプルコード

c
luaL_Buffer b;
luaL_buffinit(L, &b);
luaL_addstring(&b, "Hello, Lua!");
luaL_pushresult(&b);

このコードは、バッファに「Hello, Lua!」という文字列を追加し、最終結果をスタックにプッシュします。

互換性

  • Lua5.1

関連項目

  • luaL_buffinit
  • luaL_pushresult