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