文書の出典
- 出典
- Lua 5.5.1 Documentation
- 上流バージョン
- Lua 5.5.1
- 文書状態
- 翻訳
補助関数と型:makeseed–pushresultsize
luaL_makeseed
[-0, +0, –]
unsigned int luaL_makeseed (lua_State *L);弱いランダム性の試みによる値を返します。利用可能なLuaステートがなければ、引数LをNULLにできます。
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を返します。それ以外の場合はエラーを発生させます。
lがNULLでなければ、その参照先へ結果の長さを設定します。結果が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_addsize、luaL_pushresultと等価です。