luaL_ref
スタックのトップにあるオブジェクトを指定したテーブル内に参照として追加し、ユニークな整数キーを返します。
[-1, +0, m]
c
int luaL_ref (lua_State *L, int t);
説明
スタックのトップにあるオブジェクトのために、インデックスt
のテーブル内に参照を作成し、返します(そしてそのオブジェクトをポップします)。
参照とはユニークな整数キーです。テーブルt
に手動で整数キーを追加しない限り、luaL_ref
は返すキーの一意性を保証します。参照r
によって参照されるオブジェクトは、lua_rawgeti(L, t, r)
を呼び出すことで取得できます。関数luaL_unref
は参照とそれに関連付けられたオブジェクトを解放します。
スタックのトップにあるオブジェクトがnil
の場合、luaL_ref
は定数LUA_REFNIL
を返します。定数LUA_NOREF
は、luaL_ref
によって返される任意の参照と異なることが保証されています。
サンプルコード
c
int ref = luaL_ref(L, LUA_REGISTRYINDEX);
このコードは、スタックトップのオブジェクトをレジストリに追加し、参照キーを返します。
互換性
- Lua5.1
関連項目
- luaL_unref
- lua_rawgeti