このページの内容

C APIの関数と型:getallocf–getiuservalue

lua_getallocf

[-0, +0, –]

lua_Alloc lua_getallocf (lua_State *L, void **ud);

指定されたステートのメモリアロケーター関数を返します。udNULLでなければ、メモリアロケーター関数の設定時に指定された不透明ポインターを*udへ保存します。


lua_getfield

[-0, +1, e]

int lua_getfield (lua_State *L, int index, const char *k);

指定されたインデックスの値をtとして、値t[k]をスタックへプッシュします。Luaと同様に、この関数は「index」イベントのメタメソッドを発動する可能性があります(§2.4を参照)。

プッシュした値の型を返します。


lua_getextraspace

[-0, +0, –]

void *lua_getextraspace (lua_State *L);

指定されたLuaステートに関連付けられた生のメモリ領域へのポインターを返します。アプリケーションはこの領域を任意の目的に使えます。Luaが何かに使うことはありません。

新しい各スレッドでは、この領域がメインスレッドの領域のコピーで初期化されます。

デフォルトで、この領域はvoidへのポインターと同じサイズですが、この領域に異なるサイズを指定してLuaを再コンパイルできます。(luaconf.hLUA_EXTRASPACEを参照。)


lua_getglobal

[-0, +1, e]

int lua_getglobal (lua_State *L, const char *name);

グローバルnameの値をスタックへプッシュします。その値の型を返します。


lua_geti

[-0, +1, e]

int lua_geti (lua_State *L, int index, lua_Integer i);

指定されたインデックスの値をtとして、値t[i]をスタックへプッシュします。Luaと同様に、この関数は「index」イベントのメタメソッドを発動する可能性があります(§2.4を参照)。

プッシュした値の型を返します。


lua_getmetatable

[-0, +(0|1), –]

int lua_getmetatable (lua_State *L, int index);

指定されたインデックスの値がメタテーブルを持つ場合、関数はそのメタテーブルをスタックへプッシュし、1を返します。それ以外の場合、関数はスタックへ何もプッシュせず0を返します。


lua_gettable

[-1, +1, e]

int lua_gettable (lua_State *L, int index);

指定されたインデックスの値をt、スタック最上部の値をkとして、値t[k]をスタックへプッシュします。

この関数はスタックからキーをポップし、その位置に結果の値をプッシュします。Luaと同様に、この関数は「index」イベントのメタメソッドを発動する可能性があります(§2.4を参照)。

プッシュした値の型を返します。


lua_gettop

[-0, +0, –]

int lua_gettop (lua_State *L);

スタック最上部の要素のインデックスを返します。インデックスは1から始まるため、この結果はスタックの要素数と等しくなります。特に、0は空のスタックを意味します。


lua_getiuservalue

[-0, +1, –]

int lua_getiuservalue (lua_State *L, int index, int n);

指定されたインデックスのフルユーザーデータに関連付けられたn番目のユーザー値をスタックへプッシュし、プッシュした値の型を返します。

ユーザーデータにその値がなければ、nilをプッシュしてLUA_TNONEを返します。