Lua mutate 分配补丁如何工作?

发布于 2025-01-06 18:58:44 字数 355 浏览 0 评论 0原文

我关注了此页面,并得到了一个元方法__mutate_asn。这是我的测试代码。

local mt = {}
mt.__mutate_asn = function(a, b)
    print(a, b)
    return a + b
end

debug.setmetatable(0, mt)

a = 1
b = 2
a:=b

print(a)

输出: 1 2 1 “a”永远不会改变。

I followed this page, and got an metamethod __mutate_asn. This is my test code.

local mt = {}
mt.__mutate_asn = function(a, b)
    print(a, b)
    return a + b
end

debug.setmetatable(0, mt)

a = 1
b = 2
a:=b

print(a)

output:
1 2
1
"a" never be changed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

逆光下的微笑 2025-01-13 18:58:44

您不会改变

a:=b

正在改变全局变量的语句中的任何数字。所以,也许你需要:

setmetatable(_G, mt)

You are not mutating any numbers in the statement

a:=b

you are mutating global variables. So, perhaps you need:

setmetatable(_G, mt)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文