このページの内容

C APIの関数と型:setallocf–stringtonumber

lua_setallocf

[-0, +0, –]

void lua_setallocf (lua_State *L, lua_Alloc f, void *ud);

指定されたステートのアロケーター関数を、ユーザーデータudを持つfへ変更します。


lua_setfield

[-1, +0, e]

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

指定されたインデックスの値をt、スタック最上部の値をvとして、t[k] = vと等価な操作を行います。

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


lua_setglobal

[-1, +0, e]

void lua_setglobal (lua_State *L, const char *name);

スタックから値をポップし、グローバルnameの新しい値として設定します。


lua_seti

[-1, +0, e]

void lua_seti (lua_State *L, int index, lua_Integer n);

指定されたインデックスの値をt、スタック最上部の値をvとして、t[n] = vと等価な操作を行います。

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


lua_setiuservalue

[-1, +0, –]

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

スタックから値をポップし、指定されたインデックスのフルユーザーデータに関連付けられた新しいn番目のユーザー値として設定します。ユーザーデータがその値を持たない場合は0を返します。


lua_setmetatable

[-1, +0, –]

int lua_setmetatable (lua_State *L, int index);

スタックからテーブルまたはnilをポップし、その値を指定されたインデックスの値の新しいメタテーブルとして設定します。(nilはメタテーブルなしを意味します。)

(歴史的な理由から、この関数はintを返します。現在は常に1です。)


lua_settable

[-2, +0, e]

void lua_settable (lua_State *L, int index);

指定されたインデックスの値をt、スタック最上部の値をv、最上部のすぐ下の値をkとして、t[k] = vと等価な操作を行います。

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


lua_settop

[-?, +?, e]

void lua_settop (lua_State *L, int index);

任意の許容されるスタックインデックスまたは0を受け取り、スタック最上部をこのインデックスへ設定します。新しい最上部が以前より大きい場合、新しい要素はnilで埋められます。indexが0なら、すべてのスタック要素を除去します。

この関数は、クローズ対象として印を付けられたインデックスをスタックから除去するとき、任意のコードを実行する可能性があります。


lua_setwarnf

[-0, +0, –]

void lua_setwarnf (lua_State *L, lua_WarnFunction f, void *ud);

Luaが警告を発するために使う警告関数を設定します(lua_WarnFunctionを参照)。引数udは、警告関数へ渡される値udを設定します。


lua_State

typedef struct lua_State lua_State;

スレッドを指し、間接的に(スレッドを通じて)Luaインタープリターのステート全体を指す不透明な構造です。Luaライブラリは完全に再入可能で、グローバル変数を持ちません。ステートに関するすべての情報には、この構造を通じてアクセスできます。

Luaステートを一から作成するlua_newstateを除き、ライブラリのすべての関数へ、この構造へのポインターを第1引数として渡す必要があります。


lua_status

[-0, +0, –]

int lua_status (lua_State *L);

スレッドLのステータスを返します。

通常のスレッドではステータスはLUA_OKです。スレッドがlua_resumeの実行をエラーで終了した場合はエラーコード、スレッドが中断されている場合はLUA_YIELDです。

ステータスがLUA_OKのスレッドでのみ関数を呼び出せます。ステータスがLUA_OK(新しいコルーチンを開始)またはLUA_YIELD(コルーチンをresume)のスレッドをresumeできます。


lua_stringtonumber

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

size_t lua_stringtonumber (lua_State *L, const char *s);

ゼロ終端文字列sを数値へ変換し、その数値をスタックへプッシュして、文字列の総サイズ、つまり長さに1を加えた値を返します。Luaの字句規則(§3.1を参照)に従い、変換結果は整数または浮動小数点数になります。文字列の先頭と末尾には空白を含められ、符号も指定できます。文字列が有効な数値表記でなければ、0を返して何もプッシュしません。(結果は、変換に成功すればtrueとなるブール値として使えることに注意してください。)