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 に答える