LUA选项从另一个文件中提取变量(全局变量 vs 模块)

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

我只需要从b.lua文件中访问a.lua文件中的变量。

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


选项1:(我正在访问a.lua中的全局变量在b.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"printconfig.name)

在以上两个选项中,我能够从a.lua中获取变量name,在b.lua中使用。 请帮助理解哪个选项更好。

感谢您对此的帮助。

问候......

点赞
用户107090
用户107090

Option 2 不会写入全局环境,如果你在为别人写一个库的话,这是件好事。

如果你只是为自己写东西,两种选项都不错。

不过,如果你使用 Option 1 来写配置文件,那么 Option 2 也很有用,即使你只是在处理一个小表而不是整个全局环境(当然,全局环境也是一个表)时,使用 Option 2 更容易保存配置。

2017-04-17 11:04:14