例如: 我是一个名为“金枪鱼”文件夹,并希望要求的文件是“金枪鱼”前:如何使用Lua require()函数在实际地址之前访问模块?
例:require "some-file.lua/tuna"
,但我不知道该怎么做。
例如: 我是一个名为“金枪鱼”文件夹,并希望要求的文件是“金枪鱼”前:如何使用Lua require()函数在实际地址之前访问模块?
例:require "some-file.lua/tuna"
,但我不知道该怎么做。
你应该学习Lua如何在需要时搜索文件。
package.path
是一个字符串,它建立了它应该在哪里以及如何搜索所需的文件。它通常是这样的:
"/some/path/?.lua; /some/other/path/?.lua; ?.lua;"
当你调用require("module")
,Lua的发生在package.path
字符串中包含的(路径由分号隔开,所以第一个路径将是/some/path/?.lua
)的第一路径,并取代?
在字符串中传递给需要的字符串。
So Lua会首先在/some/path/module.lua
处搜索您的模块。
如果找到该文件,则执行该文件,否则将移至下一个路径:它将在/some/other/path/module.lua
处搜索,最后在module.lua
处搜索。
现在,如果你的目录看起来是这样的:
Outer_dir = {
tuna = {
main.lua,
tuna.lua
},
module.lua
} --didn't know how to represent a tree lol
而且,如果从main.lua你平时访问tuna.lua只是打字require("tuna")
,那么你的package.path
必须像/Outer_dir/tuna/?.lua
。为了确保你可以要求module.lua,它在“之前”tuna.lua,你应该改变你的package.path
字符串为/Outer_dir/?.lua
(这意味着你应该使用require("tuna/tuna") to access tuna.lua) or to
/Outer_dir/tuna/?.lua; /Outer_dir/?.lua so that either
要求(“金枪鱼”)and
要求(“模块”)`将正常工作。
这是什么* *前一个文件是什么意思? –
意味着它把持它的文件夹中。 – Cury
你知道当你键入cd。在CMD?就是这样。 – Cury