用于从另一个文件获取变量的LUA选项(全局变量与模块)

时间:2017-04-17 10:30:54

标签: lua lua-table

请帮助理解选项1和2中最佳实践的差异。

我需要的是从b.lua

中的文件a.lua访问is,变量

我有两个文件a.lua和b.lua:

选项1 :(我从b.lua中的a.lua访问一个全局变量)(这是有效的)

a.lua

name = "hello world"

b.lua

require("a")

print(name)

选项2 :(这也正常)

a.lua

local config = {}

config.name = "hello world"

return config

b.lua

local config = require("a")

print(config.name)

在上面的两个选项中,我都可以从b.lua中的a.lua获取变量名。 请帮助了解哪个选项更好。

感谢您的帮助。

...问候

1 个答案:

答案 0 :(得分:1)

选项2不会写入全局环境,如果您正在为其他人编写库,这是一件好事。

如果你只为自己写一些东西,两种选择都很好。

尽管如此,如果您使用选项1作为配置文件,那么即使在这种情况下,选项2也很有用,因为通过遍历小表比通过遍历整个全局环境更容易保存配置(当然,这也是一张桌子。