我正在用lua编写脚本,我需要做的是每次设置变量时运行一段代码。
我的代码是:
plane = {}
plane.status = "foo"
plane.status = "bar"
我希望每次在平面
中为变量赋值时运行它print "status=" + <value>
我该如何解决这个问题?我认为它与__newindex有关。
答案 0 :(得分: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
在原始表格中设置值。