在嵌套函数中使用 C 变量的 Lua 翻译

这是我之前关于嵌套注册 C 函数的问题的一种后续处理方式,可以在此处找到:尝试使用嵌套表调用 Lua 中的函数

上一个问题给了我添加类似以下嵌套函数的答案:

dog.beagle.fetch()

我还想在该级别上有变量,如:

dog.beagle.name
dog.beagle.microchipID

我希望这个字符串和数字在 C 中分配,并可以由 Lua 访问。因此,在 C 代码中,变量可以定义为:

int microchipIDNumber;
char dogname[500];

需要通过 Lua 中的赋值来更新 C 变量,并且当它在等号右侧时,需要由 Lua 检索其值。我尝试过 __index 和 __newindex 元方法的概念,但是当我在 Lua 路径中有 2 个点时,我尝试的所有方法似乎都无法正常工作。我知道我可能因为有 2 个点而使它变得更加复杂,但是这在 Lua 代码中的组织要容易得多。当 microchipIDNumber 值更改时,我还需要获取赋值事件,因为我需要启动某些硬件。我认为我可以通过在设置值时使用 __newindex 实现这一点。

有什么想法,您将如何编写元表和方法以实现嵌套?这可能是因为我之前的函数声明使 Lua 混淆了?

点赞