このページの内容

補助関数と型: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が文字列であるかを確認し、その文字列を返します。lNULLでなければ、その参照先へ文字列の長さを設定します。

この関数は結果を取得するために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終端でなければなりません)でその文字列を検索します。文字列が見つかった配列内のインデックスを返します。引数が文字列でない場合、または文字列を見つけられない場合はエラーを発生させます。

defNULLでなければ、引数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バージョンと同じ数値型を使っているかを確認します。