lua加载函数require和dofile
Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同 : 1. require会搜索目录加载文件; 2. require会判断是否文件已经加载避免重复加载同一文件。 由于上述特征,require在Lua中是加载库的更好的函数。 (一) require require使用的路径和普通我们看到的路径还有些区别,我们一般见到的路径都是一个目录列表。require的路径是一个模式列表,每一个模式指明一种由 虚文件名 ( require的参数)转成实文件名的方法。更明确地说,每一个模式是一个包含可选的问号的文件名。匹配的时候Lua会首先将问号用虚文件名替换,然后看是否有这样的文件存在。如果不存在继续用同样的方法用第二个模式匹配。例如,路径如下: ?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua 调用require "test"时会试着打开这些文件: test test.lua c:\windows\test /usr/local/lua/test/test.lua require关注的问题只有分号(模式之间的分隔符)和问号,其他的信息(目录分隔符,文件扩展名)在路径中定义。 为了确定路径,Lua首先检查 全局变量LUA_PATH 是否为一个字符串,如果是则认为这个串就是路径