このページの内容

補助関数と型:makeseed–pushresultsize

luaL_makeseed

[-0, +0, –]

unsigned int luaL_makeseed (lua_State *L);

弱いランダム性の試みによる値を返します。利用可能なLuaステートがなければ、引数LNULLにできます。


luaL_newlib

[-0, +1, m]

void luaL_newlib (lua_State *L, const luaL_Reg l[]);

新しいテーブルを作成し、リストlの関数をそのテーブルへ登録します。

次のマクロとして実装されています。

     (luaL_newlibtable(L,l), luaL_setfuncs(L,l,0))

配列lは、配列へのポインターではなく、実際の配列でなければなりません。


luaL_newlibtable

[-0, +1, m]

void luaL_newlibtable (lua_State *L, const luaL_Reg l[]);

配列lのすべての項目を保存するためにサイズを最適化した新しいテーブルを作成します(実際にはまだ保存しません)。luaL_setfuncsと組み合わせて使うことを意図しています(luaL_newlibを参照)。

マクロとして実装されています。配列lは、配列へのポインターではなく、実際の配列でなければなりません。


luaL_newmetatable

[-0, +1, m]

int luaL_newmetatable (lua_State *L, const char *tname);

レジストリがすでにキーtnameを持つ場合は0を返します。それ以外の場合、ユーザーデータのメタテーブルとして使う新しいテーブルを作成し、新しいテーブルへ組__name = tnameを、レジストリへ組[tname] = new tableを追加し、1を返します。

どちらの場合も、この関数はレジストリ内でtnameに関連付けられた最終的な値をスタックへプッシュします。

使用上の注意:新しいメタテーブルを条件付きで初期化するために、この関数の戻り値を使う場合(たとえばメタメソッドを追加する場合)は注意してください。初期化でエラーが発生すると、メタテーブルは正しく初期化されませんが、そのコードを後で実行すると、メタテーブルがすでに存在すると判定され、初期化を読み飛ばします。


luaL_newstate

[-0, +0, –]

lua_State *luaL_newstate (void);

新しいLuaステートを作成します。アロケーター関数をluaL_alloc、シードをluaL_makeseed(NULL)の結果としてlua_newstateを呼び出し、その後、標準エラー出力へメッセージを表示する警告関数とパニック関数(§4.4を参照)を設定します。

新しいステートを返し、メモリ割り当てエラーの場合はNULLを返します。


luaL_opt

[-0, +0, –]

T luaL_opt (L, func, arg, dflt);

このマクロは次のように定義されています。

     (lua_isnoneornil(L,(arg)) ? (dflt) : func(L,(arg)))

言い換えると、引数argがnilまたは存在しなければ、マクロの結果はデフォルト値dfltです。それ以外の場合、ステートLと引数インデックスargを引数としてfuncを呼び出した結果になります。式dfltは必要な場合にだけ評価されることに注意してください。


luaL_optinteger

[-0, +0, v]

lua_Integer luaL_optinteger (lua_State *L,
                             int arg,
                             lua_Integer d);

関数の引数argが整数(または整数へ変換可能)なら、その整数を返します。この引数が存在しないかnilならdを返します。それ以外の場合はエラーを発生させます。


luaL_optlstring

[-0, +0, v]

const char *luaL_optlstring (lua_State *L,
                             int arg,
                             const char *d,
                             size_t *l);

関数の引数argが文字列なら、その文字列を返します。この引数が存在しないかnilならdを返します。それ以外の場合はエラーを発生させます。

lNULLでなければ、その参照先へ結果の長さを設定します。結果がNULLなら(dを返し、d == NULLの場合にのみ可能)、長さは0とみなされます。

この関数は結果を取得するためにlua_tolstringを使うため、その関数のすべての変換と注意事項がここでも適用されます。


luaL_optnumber

[-0, +0, v]

lua_Number luaL_optnumber (lua_State *L, int arg, lua_Number d);

関数の引数argが数値なら、lua_Numberとしてその数値を返します。この引数が存在しないかnilならdを返します。それ以外の場合はエラーを発生させます。


luaL_optstring

[-0, +0, v]

const char *luaL_optstring (lua_State *L,
                            int arg,
                            const char *d);

関数の引数argが文字列なら、その文字列を返します。この引数が存在しないかnilならdを返します。それ以外の場合はエラーを発生させます。


luaL_prepbuffer

[-?, +?, m]

char *luaL_prepbuffer (luaL_Buffer *B);

事前定義されたサイズLUAL_BUFFERSIZEを指定したluaL_prepbuffsizeと等価です。


luaL_prepbuffsize

[-?, +?, m]

char *luaL_prepbuffsize (luaL_Buffer *B, size_t sz);

バッファーBへ追加する文字列をコピーできる、サイズszの領域へのアドレスを返します(luaL_Bufferを参照)。文字列をこの領域へコピーした後、実際にバッファーへ追加するには、文字列のサイズを指定してluaL_addsizeを呼び出す必要があります。


luaL_pushfail

[-0, +1, –]

void luaL_pushfail (lua_State *L);

fail値をスタックへプッシュします(§6を参照)。


luaL_pushresult

[-?, +1, m]

void luaL_pushresult (luaL_Buffer *B);

バッファーBの使用を終了し、最終的な文字列をスタック最上部に残します。


luaL_pushresultsize

[-?, +1, m]

void luaL_pushresultsize (luaL_Buffer *B, size_t sz);

呼び出し列luaL_addsizeluaL_pushresultと等価です。