Lua、Require、可用函数

Use*_*r.1 6 lua require

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

我遇到了函数调用函数调用其他函数的问题。我尝试将各种功能放在其他文件中,然后include将它们放入主文件中,而不是将它们写入主文件中。

认为这是有效的,我的测试即使没有定论也是令人信服的。

我的主线代码是这样做的...

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

 XYZ = 0

 File_02_Function_A()
Run Code Online (Sandbox Code Playgroud)

我查看了Lua 站点并找到了此页面,但我对此并不完全清楚。

可以EVERY在功能上的所有三个 必需的文件看每隔在所有这三个文件的功能?

W.B*_*.B. 5

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

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

local some_required_file_01 = require "SOME_REQUIRED_FILE_01"
local some_result_01 = some_required_file_01.some_function_01()
Run Code Online (Sandbox Code Playgroud)

  • 一般来说,是的,但它只能在加载第三个文件后调用。请注意,如果您遵循不设置任何全局变量的建议,也可以实现相同的效果。您可以在主文件中要求第三个文件,但您也可以在第一个文件中要求相同的文件并在本地调用函数。它更干净,并且需要确保您不会两次加载文件。 (2认同)