Lua,要求,可用功能

时间:2014-04-25 18:59:00

标签: lua require

如果我在我的Lua脚本中有require三个包含的文件,那么这些文件中的任何一个函数都可以看到(最重要的是,调用)任何其他函数吗?

我遇到调用函数调用其他函数的函数问题。我试图将各种函数放在其他文件中,然后include将它们写入主文件中。

认为它正在发挥作用,我的测试是否有说服力。

我的主线代码执行此操作...

 require "SOME_REQUIRED_FILE_01"
 require "SOME_REQUIRED_FILE_02"
 require "SOME_REQUIRED_FILE_03"

 XYZ = 0

 File_02_Function_A()

我查看The Lua Site并找到THIS PAGE,但我对此并不完全清楚。

所有三个所需文件中的 EVERY 功能是否可以在所有三个文件中看到 EVERY OTHER 功能?

1 个答案:

答案 0 :(得分:4)

requiredofile基本相同,除了避免多次加载同一文件的机制(以及一些其他有用的东西,如加载器)。这意味着,他们也可以设置全局变量(尽管它们不应该)。因此,如果在其中一个必需文件中设置全局变量,则可以在require函数的整个范围内看到全局变量。这也意味着在其他所需文件中。

话虽如此,在required文件中设置全局变量并非最佳做法。最好返回一个包含模块内部导出的函数和变量的表。然后你会调用这样的函数:

local some_required_file_01 = require "SOME_REQUIRED_FILE_01"
local some_result_01 = some_required_file_01.some_function_01()