1

我正在用lua编写脚本,我需要做的是每次设置变量时运行一段代码。

我的代码是:

plane = {}
plane.status = "foo"
plane.status = "bar"

每次将值分配给平面中的变量时,我都想运行它

print "status=" + <value>

我该怎么办?我认为它与 __newindex 有关。

4

1 回答 1

3

是的,您为它设置了一个代理plane并为其设置了一个__newindex元方法。

function managed(t,f)
        return setmetatable({},{__index=t, __newindex=f})
end

plane = managed({},print)
plane.status = "foo"
plane.status = "bar"

实际上,在元方法中__newindex,您将使用rawset.

于 2012-07-03T16:21:57.063 回答