lua_getupvalue
クロージャのアップバリューについての情報を取得します。
[-0, +(0|1), -]
c
const char *lua_getupvalue (lua_State *L, int funcindex, int n);
説明
クロージャのアップバリューについての情報を取得します。(Lua関数の場合、アップバリューは関数が使用する外部のローカル変数であり、結果としてクロージャに含まれます。)lua_getupvalue
はアップバリューのインデックスnを取得し、アップバリューの値をスタックにプッシュし、その名前を返します。funcindex
はスタック内のクロージャを指します。(アップバリューには特定の順序がなく、関数全体を通してアクティブです。したがって、任意の順序で番号付けされます。)
インデックスがアップバリューの数を超える場合、NULL(何もプッシュせず)を返します。C関数の場合、この関数はすべてのアップバリューの名前として空の文字列""
を使用します。
サンプルコード
c
const char *name = lua_getupvalue(L, 1, 1);
if (name) {
printf("アップバリュー名: %s\n", name);
}
このコードは、インデックス1にある関数の最初のアップバリューの名前を取得して表示します。
互換性
- Lua5.1
関連項目
- lua_setupvalue
- lua_getlocal