Как работает патч Lua mutate? - PullRequest
       12

Как работает патч Lua mutate?

0 голосов
/ 19 февраля 2012

Я проследовал на эту страницу и получил метаметод __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 «а» никогда не изменится.

1 Ответ

0 голосов
/ 19 февраля 2012

Вы не изменяете никакие числа в выписке

a:=b

Вы изменяете глобальные переменные. Итак, возможно, вам нужно:

setmetatable(_G, mt)
...