ulua 路径小记 以及 lua require 机制整理

本文主要介绍了ulua的路径处理,讲解了lua的require机制,包括package.preload、package.path、package.cpath和package.loaders(在Lua5.3中称为searchers)的工作原理。在lua中,require会按照package.loaders中的顺序查找模块,通过package.path和package.cpath来搜索lua和C库文件。同时,文章也提到了lua的环境变量对路径初始化的影响。
摘要由CSDN通过智能技术生成

ulua 路径小记

在学习ulua时,require模块的根路径可以为项目的Lua文件夹或者ToLua文件夹(Editor下),但是在package.pathpackage.cpath中并没有看到当前项目的路径,那require是如何找到Lua和ToLua文件夹的路径的呢?
* ulua在初始化LuaState时,会先解析package.path, 并将其存入LuaFileUtilsSearchPaths中(LuaState.cs line:603),并将Lua和ToLua的目录添加其中(LuaState.cs line:187)。
* 在LuaState的构造函数中,会调用ToLua.OpenLib(T),该方法定义了一下特殊方法,可以在lua中使用,如typeof等。
* OpenLib方法会在package.loaders数组中,再添加一个loader,并且将其放到数组的第二个位置。(ToLua.cs line:192)注:Lua require模块时,会依次调用package.loader中的方法,找到则返回
* loader的作用就是检测传入的文件名(module名),是否在LuaFileUtilsSearchPaths,如果存在就读取文件,若不存在则返回空(LuaFileUitls.cs line:170)

Lua require 相关整理(基于lua 5.1)

摘自http://cloudwu.github.io/lua53doc

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值