Lua 中的句点代表什么?

我有一些专利实现的 Lua,所有对我可见的变量都是以 'ME.AV123'(例如)的形式呈现的。那么 'ME' 是什么?它是一个命名空间吗?是一个类吗?有办法可以确定它是什么吗?我是否能够执行某种形式的 type(ME)(这似乎没有用)?文档中说 关键字 'ME' 用于访问本地数据库中的对象。

跟进,附加问题-有没有办法获得 ME 中的所有变量?例如 - 就像全局变量使用 _G[varname],是否有一种等效的方法可以为 ME 做到这一点?

如果我没有给足够的信息,我很抱歉。我不熟悉 Lua,并且通过这个....事情相对受限。

可能更好地说明一下,表明我实际上正在尝试做什么:

我可以与一些变量交互,所有这些变量都在文档中。它们中的所有变量都被命名为(寻址?)'ME.varname'。因此,要将 'AV120' 设置为 '1',我会说 ME.AV120 = 1。我需要设置其中的一些......几十个变量,并希望一边循环遍历所有变量,一边设置它们。我认为应该有类似以下的东西:

for i,j in pairs(mySettingsTable) do
    ME[i] = j
end

这有意义吗?

点赞
用户2858170
用户2858170

从 Lua 参考手册:

https://www.lua.org/manual/5.3/manual.html#2.1

该语言通过提供 a.name 作为 a["name"] 的语法糖来支持此表示形式。

因此,ME.AV123 与 ME["AV123"] 相同。

这只是一种更为方便的索引形式。

type() 返回一个字符串,在您想知道为什么函数本身不起作用时。print(type(ME)) 应该可以工作。

2018-03-10 15:44:28