在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
转自:http://www.cppblog.com/cslover/archive/2013/12/21/204934.html
Lua提供高级的require函数来加载运行库。粗略的说require和dofile完成同样的功能但有两点不同: 1. require会搜索目录加载文件 2. require会判断是否文件已经加载避免重复加载同一文件。由于上述特征,require在Lua中是加载库的更好的函数。 require使用的路径和普通我们看到的路径还有些区别,我们一般见到的路径都是一个目录列表。require的路径是一个模式列表,每一个模式指明一种由虚文件名 ?;?.lua;c:\windows\?;/usr/local/lua/?/?.lua 调用require "lili"时会试着打开这些文件: lili lili.lua c:\windows\lili /usr/local/lua/lili/lili.lua require关注的问题只有分号(模式之间的分隔符)和问号,其他的信息(目录分隔符,文件扩展名)在路径中定义。 为了确定路径,Lua首先检查全局变量LUA_PATH是否为一个字符串,如果是则认为这个串就是路径;否则require检查环境变量LUA_PATH的值,如果两个都失败 require的另一个功能是避免重复加载同一个文件两次。Lua保留一张所有已经加载的文件的列表(使用table保存)。如果一个加载的文件在表中存在require简单的返回; 一个路径中的模式也可以不包含问号而只是一个固定的路径,比如: ?;?.lua;/usr/local/default.lua 这种情况下,require没有匹配的时候就会使用这个固定的文件(当然这个固定的路径必须放在模式列表的最后才有意义)。在require运行一个chunk以前,它定义了
|
请发表评论