lua自定义模块的引用,模块搜索路径设置

前提确保我们的所有lua文件都在统一目录下

为什么直接使用require()无法引用文件,在 Lua 中,模块搜索路径由全局变量 package.path 控制。模块搜索路径告诉 Lua 解释器在哪里查找要被 require 加载的 Lua 模块文件。

1. 了解 package.path 变量
  • package.path 是一个用于设置 Lua 模块搜索路径的全局变量。
  • 该变量包含了一个用分号分隔的文件路径列表,Lua 解释器会按顺序在这些路径中查找模块文件。
2. 设置模块搜索路径
  • 使用赋值语句,将新的路径追加到 package.path 中。

    
    package.path = package.path .. ';文件所在路径/?.lua'
    
    require("文件名")
    
    
    package.path = package.path .. ';/ar/mobile/Media/TouchSprite/res/?.lua/?.lua'
  • 文件路径应该是包含了你的模块文件的文件夹路径。?.lua 是一个模块名的占位符,Lua 解释器在加载模块时会用实际的模块名替换这个占位符。

  • 只需要在当前需要调用的lua文件前加上package.path = package.path .. ';文件所在路径/?.lua' 在进行require("文件名")调用即可。

3. 示例:设置项目中的模块路径
  • 假设项目的 Lua 模块文件都存放在 E:/untitled1/ 目录下。

    -- 设置模块搜索路径,将'E:/untitled1/'目录添加到搜索路径中 package.path = package.path .. ';E:/untitled1/?.lua'

4. 使用绝对路径或相对路径
  • 可以使用绝对路径或相对路径,具体取决于项目的文件结构和组织方式。

  • 使用绝对路径 package.path = package.path .. ';C:/Projects/myproject/?.lua'

  • 或者使用相对路径 package.path = package.path .. ';./subfolder/?.lua'

5. 注意事项
  • 确保设置的路径是正确的,包含了模块文件的实际存放位置。
  • 路径分隔符使用正斜杠 / 或反斜杠 \ 都是可以接受的,Lua 在不同的平台上都能正确解析。

示例脚本

下面是一个完整的示例,演示了如何设置模块搜索路径以及如何使用 require 加载模块:

-- 设置模块搜索路径,将'E:/untitled1/'目录添加到搜索路径中 package.path = package.path .. ';E:/untitled1/?.lua'

-- 加载名为'main'的模块 require("main")

-- 加载名为'api'的模块 require("api")

通过这些步骤,你可以确保 Lua 解释器能够正确找到并加载你项目中的模块文件。

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值