Lua变异赋值补丁如何工作?

我按照这个页面的指示得到了一个名为 __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" 没有被改变。

原文链接 https://stackoverflow.com/questions/9346681

点赞
stackoverflow用户33252
stackoverflow用户33252

在这个语句中,你并没有改变任何数字,但是你改变了全局变量。因此,也许你需要使用以下代码:

setmetatable(_G, mt)
2012-02-19 17:38:16