setupvalue与upvaluejoin在lua调试库中能否完全互换使用?

2026-04-01 19:441阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计249个文字,预计阅读时间需要1分钟。

setupvalue与upvaluejoin在lua调试库中能否完全互换使用?

整体来说,伪原创以下内容,不超过100字:

除了`setupvalue`返回的名称外,还有以下区别:- `debug.setupvalue(f, up, val)`和`debug.upvaluejoin(f, up, function() return val end, 1)`(本地变量)- `debug.upvaluejoin(f1, n1, f2, n2)`和`debug.setupvalue(名称)`(变量连接)

具体来说,除了setupvalue返回名称之外还有什么区别:

debug.setupvalue(f, up, val)

debug.upvaluejoin(f, up, function() return val end, 1)

(与val本地)

或之间:

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

debug.setupvalue(f1, n1, select(2, debug.getupvalue(f2, n2)))

我的印象是upvaluejoin增加了一些魔力,但有些测试表明不然.

upvaluejoin只是一些糖来缓解功能重复等吗?

debug.setupvalue(f,up,value)将value设置为具有函数f的id up的upvalue

而debug.upvaluejoin(f1,n1,f2,n2)将f1的第n1个上升值称为f2的第n2个上升值

所以实际上它们是完全不同的东西,而不仅仅是一些糖.

在某些情况下,您可以获得相同的结果,但它们肯定不一样或只是可互换的.

setupvalue与upvaluejoin在lua调试库中能否完全互换使用?

本文共计249个文字,预计阅读时间需要1分钟。

setupvalue与upvaluejoin在lua调试库中能否完全互换使用?

整体来说,伪原创以下内容,不超过100字:

除了`setupvalue`返回的名称外,还有以下区别:- `debug.setupvalue(f, up, val)`和`debug.upvaluejoin(f, up, function() return val end, 1)`(本地变量)- `debug.upvaluejoin(f1, n1, f2, n2)`和`debug.setupvalue(名称)`(变量连接)

具体来说,除了setupvalue返回名称之外还有什么区别:

debug.setupvalue(f, up, val)

debug.upvaluejoin(f, up, function() return val end, 1)

(与val本地)

或之间:

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

debug.setupvalue(f1, n1, select(2, debug.getupvalue(f2, n2)))

我的印象是upvaluejoin增加了一些魔力,但有些测试表明不然.

upvaluejoin只是一些糖来缓解功能重复等吗?

debug.setupvalue(f,up,value)将value设置为具有函数f的id up的upvalue

而debug.upvaluejoin(f1,n1,f2,n2)将f1的第n1个上升值称为f2的第n2个上升值

所以实际上它们是完全不同的东西,而不仅仅是一些糖.

在某些情况下,您可以获得相同的结果,但它们肯定不一样或只是可互换的.

setupvalue与upvaluejoin在lua调试库中能否完全互换使用?