【发布时间】:2021-11-13 20:01:10
【问题描述】:
假设我有一个这样的嵌套表:
local a = {
b = {
c = {
d = 'e'
}
},
f = {
g = {
h = {
i = 'j'
}
}
}
}
(忽略变量名,它们只是占位符)
所以我想知道的是,每次修改该表或其任何子表时如何触发函数。例如,如果我使用a = { 'something' } 或者如果我使用a.b = { 'something' } 或者如果我使用a.b.c = { 'something' } 等等。在使用代理表的元表中使用__newindex 元方法我只能在第二种情况下触发该函数。 (例如:当我做a.b = { 'something' })
有没有办法在每次修改嵌套表的任何元素时触发它?我需要它的原因是因为表需要缓存某些值的索引,所以当一个值改变时,我需要重新缓存表。
感谢您的帮助。提前致谢。
【问题讨论】: