Skip to content

lua_upvalueid

Luaクロージャから指定されたアップバリューの一意な識別子を取得します。

c
void *lua_upvalueid (lua_State *L, int funcindex, int n);

説明

インデックスfuncindexのクロージャからアップバリュー番号nの一意な識別子を返します。パラメータfuncindexnlua_getupvalueと同様です(lua_getupvalue参照)(ただし、nはアップバリューの数を超えてはなりません)。

この一意な識別子により、プログラムは異なるクロージャがアップバリューを共有しているかどうかを確認できます。Luaクロージャがアップバリュー(同一の外部ローカル変数を参照)を共有している場合、これらのアップバリューインデックスに対して同一のIDが返されます。

サンプルコード

c
void *id = lua_upvalueid(L, 1, 1);
printf("アップバリューID: %p\n", id);

このコードは、スタックの最初の関数に関連付けられた最初のアップバリューのIDを取得して表示します。

互換性

  • Lua5.2

関連項目

  • lua_upvaluejoin
  • lua_getupvalue