Skip to content

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