在代码中的某个时刻,我将一个表引用(即它的标识)分配给我的变量:
local defines = ffi.lcpp_defs
但是,库每次都会创建一个同名的新表。反过来, local defines,仍然指的是旧表(身份)。如何引用表名?
在代码中的某个时刻,我将一个表引用(即它的标识)分配给我的变量:
local defines = ffi.lcpp_defs
但是,库每次都会创建一个同名的新表。反过来, local defines,仍然指的是旧表(身份)。如何引用表名?
在lua中,你可以使用所谓的。“代理表”,使用元方法转发所有(必要的)表方法。例如:
在这个例子中,我们只能从表中读取数据。
PS:当您需要对表进行有限访问时(结合 upvalue),也会使用这个技巧。
您可以使用 __newindex 和 __index 元方法:
在本例中,您可以对代理表引用的表进行读写操作