文書の出典
- 出典
- Lua 5.5.1 Documentation
- 上流バージョン
- Lua 5.5.1
- 文書状態
- 翻訳
C APIの関数と型:toboolean–typename
lua_toboolean
[-0, +0, –]
int lua_toboolean (lua_State *L, int index);指定されたインデックスのLua値をCのブール値(0または1)へ変換します。Luaのすべての検査と同様に、lua_tobooleanはfalseとnil以外のすべてのLua値に対してtrueを返し、それ以外ではfalseを返します。(実際のブール値だけを受け入れたい場合は、lua_isbooleanを使って値の型を検査してください。)
lua_tocfunction
[-0, +0, –]
lua_CFunction lua_tocfunction (lua_State *L, int index);指定されたインデックスの値をC関数へ変換します。その値はC関数でなければならず、それ以外の場合はNULLを返します。
lua_toclose
[-0, +0, v]
void lua_toclose (lua_State *L, int index);スタック内の指定されたインデックスをクローズ対象スロットとして印を付けます(§3.3.8を参照)。Luaのクローズ対象変数と同様、そのスタックスロットの値はスコープを外れると閉じられます。ここでC関数の文脈においてスコープを外れるとは、実行中の関数がLuaへ戻る、エラーがある、lua_settopまたはlua_popによってスロットがスタックから除去される、あるいはlua_closeslotが呼び出されることを意味します。クローズ対象として印を付けられたスロットは、事前にlua_closeslotで無効化されていない限り、lua_settopまたはlua_pop以外のAPI関数でスタックから除去してはいけません。
指定されたスロットの値が__closeメタメソッドを持たず、偽の値でもない場合、この関数はエラーを発生させます。
アクティブなクローズ対象スロット以下のインデックスに対して、この関数を呼び出してはいけません。
エラーの場合も通常のreturnの場合も、__closeメタメソッドが実行される時点ではCスタックがすでに巻き戻されていることに注意してください。そのため、呼び出し元の関数で宣言されたすべての自動C変数(たとえばバッファー)はスコープ外になっています。
lua_tointeger
[-0, +0, –]
lua_Integer lua_tointeger (lua_State *L, int index);isnumをNULLとしたlua_tointegerxと等価です。
lua_tointegerx
[-0, +0, –]
lua_Integer lua_tointegerx (lua_State *L, int index, int *isnum);指定されたインデックスのLua値を符号付き整数型lua_Integerへ変換します。Lua値は整数、または整数へ変換できる数値か文字列でなければなりません(§3.4.3を参照)。それ以外の場合、lua_tointegerxは0を返します。
isnumがNULLでなければ、その参照先へ操作が成功したかを示すブール値を代入します。
lua_tolstring
[-0, +0, m]
const char *lua_tolstring (lua_State *L, int index, size_t *len);指定されたインデックスのLua値をC文字列へ変換します。Lua値は文字列または数値でなければならず、それ以外の場合はNULLを返します。値が数値なら、lua_tolstringはスタック内の実際の値も文字列へ変更します。(テーブル走査中にキーへlua_tolstringを適用すると、この変更によってlua_nextが混乱します。)
lenがNULLでなければ、関数は*lenへ文字列の長さを設定します。返されるC文字列は最後の文字の後に常にゼロ(‘\0’)を持ちますが、内部にほかのゼロを含む場合があります。
対応するLua値がスタックから除去されると、lua_tolstringが返したポインターはガベージコレクターによって無効化される可能性があります(§4.1.3を参照)。
この関数がメモリエラーを発生させる可能性があるのは、数値を文字列へ変換するときだけです(新しい文字列を作成する可能性があるためです)。
lua_tonumber
[-0, +0, –]
lua_Number lua_tonumber (lua_State *L, int index);isnumをNULLとしたlua_tonumberxと等価です。
lua_tonumberx
[-0, +0, –]
lua_Number lua_tonumberx (lua_State *L, int index, int *isnum);指定されたインデックスのLua値をCの型lua_Numberへ変換します(lua_Numberを参照)。Lua値は数値または数値へ変換できる文字列でなければなりません(§3.4.3を参照)。それ以外の場合、lua_tonumberxは0を返します。
isnumがNULLでなければ、その参照先へ操作が成功したかを示すブール値を代入します。
lua_topointer
[-0, +0, –]
const void *lua_topointer (lua_State *L, int index);指定されたインデックスの値を汎用Cポインター(void*)へ変換します。値にはユーザーデータ、テーブル、スレッド、文字列、または関数を指定できます。それ以外の場合、lua_topointerはNULLを返します。異なるオブジェクトは異なるポインターになります。ポインターを元の値へ戻す方法はありません。
通常、この関数はハッシュとデバッグ情報にのみ使われます。
lua_tostring
[-0, +0, m]
const char *lua_tostring (lua_State *L, int index);lenをNULLとしたlua_tolstringと等価です。
lua_tothread
[-0, +0, –]
lua_State *lua_tothread (lua_State *L, int index);指定されたインデックスの値をLuaスレッド(lua_State*として表現)へ変換します。この値はスレッドでなければならず、それ以外の場合、関数はNULLを返します。
lua_touserdata
[-0, +0, –]
void *lua_touserdata (lua_State *L, int index);指定されたインデックスの値がフルユーザーデータなら、そのメモリブロックのアドレスを返します。値がライトユーザーデータなら、その値(ポインター)を返します。それ以外の場合はNULLを返します。
lua_type
[-0, +0, –]
int lua_type (lua_State *L, int index);指定された有効なインデックスの値の型を返し、有効でないものの許容されるインデックスにはLUA_TNONEを返します。lua_typeが返す型は、lua.hで定義された次の定数によって符号化されます:LUA_TNIL、LUA_TNUMBER、LUA_TBOOLEAN、LUA_TSTRING、LUA_TTABLE、LUA_TFUNCTION、LUA_TUSERDATA、LUA_TTHREAD、LUA_TLIGHTUSERDATA。
lua_typename
[-0, +0, –]
const char *lua_typename (lua_State *L, int tp);値tpによって符号化された型の名前を返します。この値はlua_typeが返す値のいずれかでなければなりません。