文書の出典
- 出典
- Lua 5.5.1 Documentation
- 上流バージョン
- Lua 5.5.1
- 文書状態
- 翻訳
補助関数と型:callmeta–checkversion
luaL_callmeta
[-0, +(0|1), e]
int luaL_callmeta (lua_State *L, int obj, const char *e);メタメソッドを呼び出します。
インデックスobjのオブジェクトがメタテーブルを持ち、そのメタテーブルにフィールドeがある場合、この関数はオブジェクトだけを引数としてフィールドを呼び出します。この場合、この関数はtrueを返し、呼び出しが返した値をスタックへプッシュします。メタテーブルまたはメタメソッドがなければ、スタックへ値をプッシュせずfalseを返します。
luaL_checkany
[-0, +0, v]
void luaL_checkany (lua_State *L, int arg);関数が位置argに任意の型(nilを含む)の引数を持つかを確認します。
luaL_checkinteger
[-0, +0, v]
lua_Integer luaL_checkinteger (lua_State *L, int arg);関数の引数argが整数である(または整数へ変換できる)かを確認し、その整数を返します。
luaL_checklstring
[-0, +0, v]
const char *luaL_checklstring (lua_State *L, int arg, size_t *l);関数の引数argが文字列であるかを確認し、その文字列を返します。lがNULLでなければ、その参照先へ文字列の長さを設定します。
この関数は結果を取得するためにlua_tolstringを使うため、その関数のすべての変換と注意事項がここでも適用されます。
luaL_checknumber
[-0, +0, v]
lua_Number luaL_checknumber (lua_State *L, int arg);関数の引数argが数値であるかを確認し、lua_Numberへ変換した数値を返します。
luaL_checkoption
[-0, +0, v]
int luaL_checkoption (lua_State *L,
int arg,
const char *def,
const char *const lst[]);関数の引数argが文字列であるかを確認し、配列lst(NULL終端でなければなりません)でその文字列を検索します。文字列が見つかった配列内のインデックスを返します。引数が文字列でない場合、または文字列を見つけられない場合はエラーを発生させます。
defがNULLでなければ、引数argがない場合、またはこの引数がnilの場合に、関数はdefをデフォルト値として使います。
これは文字列をCの列挙型へ対応付けるのに便利な関数です。(Luaライブラリでは通常、オプションの選択に数値ではなく文字列を使います。)
luaL_checkstack
[-0, +0, v]
void luaL_checkstack (lua_State *L, int sz, const char *msg);スタックサイズをtop + sz要素まで増やします。そのサイズまで増やせなければエラーを発生させます。msgはエラーメッセージへ追加するテキストです(追加テキストがなければNULL)。
luaL_checkstring
[-0, +0, v]
const char *luaL_checkstring (lua_State *L, int arg);関数の引数argが文字列であるかを確認し、その文字列を返します。
この関数は結果を取得するためにlua_tolstringを使うため、その関数のすべての変換と注意事項がここでも適用されます。
luaL_checktype
[-0, +0, v]
void luaL_checktype (lua_State *L, int arg, int t);関数の引数argが型tを持つかを確認します。tにおける型の符号化についてはlua_typeを参照してください。
luaL_checkudata
[-0, +0, v]
void *luaL_checkudata (lua_State *L, int arg, const char *tname);関数の引数argが型tnameのユーザーデータであるかを確認し(luaL_newmetatableを参照)、ユーザーデータのメモリブロックのアドレスを返します(lua_touserdataを参照)。
luaL_checkversion
[-0, +0, v]
void luaL_checkversion (lua_State *L);呼び出しを行うコードと、呼び出されるLuaライブラリが、同じLuaバージョンと同じ数値型を使っているかを確認します。