S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Lua require

Posted on 2010-06-20 12:57 S.l.e!ep.¢% 阅读(2155) 评论(0)  编辑 收藏 引用 所属分类: Lua

Lua的require:require (modname)
用于加载指定的模块。
   此函数先检测package.loaded表中是否存在modname,存在则直接返回当中的值,没有则通过定义的加载器加载modname。
查找加载器顺序:
    (1)检测package.preload表是否存在modname,有则加载
    (2)通过Lua Loader加载,通过查找存放于package.path的路径加载,有则加载
    (3)通过C Loader加载,通过查找存放于package.cpath的路径加载,有则加载
    (4)通过all-in-one Loader加载:
      通过查找modname.dll并查找当中的luaopen_<XXXX>
      其中XXXX为载块名-后的字符用_替换.后的字符:如:a.v1-b.c 当函数名为luaopen_b_c
    当require查找的不是一个Lua库或C库,它就会调用all-in-one loader,此加载器是用C路径作为载块的目录,
    当查找到合适的加载器时,require就会加载其中的模块,当加载器有返回值,将会存放于package.loaded[modname]表。最后返回package.loaded[modname]表
    当加载失败时,require将触发错误

package.cpath
功能:用于require C loader的搜索路径,为模式串
可以通过修改LUA_CPATH变量(luaconf.h)修改此值

package.path
功能:用于require Lua loader的搜索路径
同样可以通过修改LUA_PATH变量(luaconf.h)修改此值


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理