模块

模块就像是c语言工程项目目录里的.h.c文件或外部依赖项,为某一个文件的代码提供依赖,其实就是把工作分成几个模块,方便项目的管理,提高开发效率和维护效率

在Lua中,模块其实就是一个表,实现方式也很简单,定义表里面的数据或者方法,最后返回这个表即可

测试代码:

module.lua文件

--module.lua
_module.sentence = "我不做人了jojo" _module.wave = function()
print("吃下我最后的波纹吧")
end local function TheWorld()
print("杂哇撸多!")
end _module.TheWorld = TheWorld return _module --记得返回这个表

test.lua

--test.lua
require("module") --通过require函数获得模块 print(_module.sentence)
_module.TheWorld()

解释一下,表_module中,下划线是我为了验证require()函数传入的参数是lua脚本的名字还是模板内的表的名字(其实是脑子被门夹了)

require函数从当前脚本文件所在目录下寻找参数中的模板,并生成一个全局的_module变量,显然这个变量名是和模板内的表的名字是一样的,并且test.lua脚本能够顺利运行,证明是能够通过使用_module中的TheWorld()函数间接调用模块中的本地函数的。

当然,也可以把模板赋值给一个变量

m = require("module")
print(m.sentence)
m.TheWorld()

m和_module指向的是同一段内存

最新文章

  1. GZFramework代码生成器插件使用教程
  2. smdkv210
  3. EF—主键冲突解决办法
  4. 转:TimeSpan的用法
  5. rsyncd.conf 文件
  6. Python print语句
  7. 把给定的字符串解析为Date对象
  8. 操作PDF文档功能的相关开源项目探索——iTextSharp 和PDFBox
  9. 也来“玩”Metro UI之磁贴
  10. angularjs uigrid 中celltemplate的写浮动框
  11. memcache 启动 储存原理 集群
  12. day 23 面向对象二
  13. 2019Java查漏补缺(三)
  14. 系统重启后,mr程序不生成当前时间段的MRx文件问题
  15. React之ref
  16. Docker在Windows上运行NetCore系列(一)使用命令控制台运行.NetCore控制台应用
  17. 四、K3 Cloud 开发插件《K3 Cloud事件、方法、函数》
  18. mybatis总结之一
  19. RN 使用第三方组件之react-native-image-picker(拍照/从相册获取图片)
  20. GDPR给安全的影响

热门文章

  1. Windows命令行使用总结(持续更新)
  2. Loadrunner测试webservice协议总结
  3. POJ 1182 食物链(经典带权并查集 向量思维模式 很重要)
  4. Vue 源码分析—— 目录结构
  5. Hadoop相关笔记
  6. 浅谈nodejs中HTTP模块应用
  7. mkdir 的详细使用说明
  8. ubuntu软件安装
  9. upload-labs19记录
  10. (数据科学学习手札47)基于Python的网络数据采集实战(2)