- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Lua极简入门指南(六):模块由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
从用户的角度来看,一个模块能够通过 require 加载并返回一个 table,模块导出的接口都被定义在此 table 中(此 table 被作为一个 namespace)。所有的标准库都是模块。标准库被预先加载了,就像这样:
。
。
require 函数 。
使用 require 函数加载模块能够避免多次重复加载模块。加载一个模块:
。
。
模块名(modulename)不那么准确的来说就是一个文件名(Lua 文件或者是 C 库)。一个模块被加载后会被缓存到 pacakge.loaded[modulename] 中。看一个例子:
。
。
在 test.lua 的相同目录下创建 main.lua 文件:
。
。
我们可以尝试多次 require test.lua 文件,但最终只会输出一次 Hello World。如果我们希望 require 重新加载模块,那么可以清理 package.loaded:
。
。
范例:
。
。
编写模块 。
编写一个模块很简单,我们先创建一个 table 然后把需要导出的接口放入 table 中,最后返回此 table:
。
。
模块的返回值会被赋值给 package.loaded[modulename]:
。
。
如果模块不返回值,那么 package.loaded[modulename] 的值将为 true:
。
。
更多的编写模块的方法见:http://lua-users.org/wiki/ModulesTutorial 。
查找模块 。
如果一个模块使用 Lua 编写,那么将在 package.path 中查找,如果一个模块使用 C 编写,那么将在 package.cpath 中查找。package.path 和 package.cpath 是一个分号分隔的路径列表,例如:
。
。
每一个路径都有一个 ?,真正的查找路径是将 ? 替换为模块名之后的路径.
实际上,我们可以自定义查找模块的规则(通过向 package.searchers 中添加适当的 searcher 函数实现),例如我们可以把所有模块保存在一个加密并压缩的 zip 文件中.
一个模块命名为 mod.sub,其是 mod 的子模块。在查找模块时,mod.sub 中的 . 号会被转换为目录分隔符。假定路径列表如下:
。
。
那么 require ‘a.b' 将尝试打开文件:
。
。
最后此篇关于Lua极简入门指南(六):模块的文章就讲到这里了,如果你想了解更多关于Lua极简入门指南(六):模块的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我正在使用 Bootstrap 日期时间选择器。我想要 datetimepicker 格式作为短月份名称,例如。 一月。我的代码在下面,它现在显示完整的月份名称为 January。如何让它成为 Jan
注意:这篇博客已经和当前的分页插件完全不一样了,所以建议大家通过上面项目地址查看最新的源码和文档来了解。 以前为Mybatis分页查询发愁过,而且在网上搜过很多相关的文章,最后一个都没采用。在分页
我是一名优秀的程序员,十分优秀!