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

LUA options to fetch variables from another file (Global variables vs Modules)

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

我只需要访问 b.lua

中文件 a.lua 中的变量

我有两个文件 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 获取变量名。 请帮助了解哪个选项更好。

感谢您对此的帮助。

此致...

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

如果您只是为自己写一些东西,两种选择都不错。

不过,如果您对配置文件使用选项 1,那么选项 2 很有用,即使在这种情况下也是如此,因为通过遍历一个小 table 比遍历整个全球环境(当然也是table)。