setupvalue与upvaluejoin在lua调试库中能否完全互换使用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计249个文字,预计阅读时间需要1分钟。
整体来说,伪原创以下内容,不超过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个上升值
所以实际上它们是完全不同的东西,而不仅仅是一些糖.
在某些情况下,您可以获得相同的结果,但它们肯定不一样或只是可互换的.
本文共计249个文字,预计阅读时间需要1分钟。
整体来说,伪原创以下内容,不超过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个上升值
所以实际上它们是完全不同的东西,而不仅仅是一些糖.
在某些情况下,您可以获得相同的结果,但它们肯定不一样或只是可互换的.

