Skip to content

debug.upvaluejoin

2つの関数のアップバリューを結合する

lua
debug.upvaluejoin (f1, n1, f2, n2)

説明

関数f1n1番目のアップバリューを、関数f2n2番目のアップバリューに結合します。これにより、複数の関数が同じアップバリューを共有できるようになります。

サンプルコード

lua
local function outer()
  local x = 10
  local function inner1() return x end
  local function inner2() return 0 end
  debug.upvaluejoin(inner2, 1, inner1, 1)
  print(inner2())  -- 10が表示される
end

outer()

この例では、inner2のアップバリューがinner1のアップバリューと結合され、値が共有されます。

LuaJIT独自の拡張

メタメソッドを識別する。

互換性

  • Lua 5.2
  • LuaJIT

関連項目