博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何创建一个 Lua 模块
阅读量:6483 次
发布时间:2019-06-23

本文共 988 字,大约阅读时间需要 3 分钟。

hot3.png

如何创建一个 Lua 模块

翻译自:

  • 译者: FreeBlues

正文

中的一个 模块(module)是一个包含函数和变量的代码片段: 它是一个用户库. 它是把你的代码切分为多个文件的一种有力方法. 一个 模块Lua 关键字 require 来加载. 模块 被编码到一个以 .lua 作为扩展名的文件中, 并且这个文件必须出现在 Lua 包搜索路径(package.path) 中.

一个 模块 实际上就是一个带有函数的 Lua 表(table)(这里有关于 Lua 的一个). 这个表在 模块 文件的最后被返回. 这里有一个叫做 DemoLib.lua 的简单的 Lua模块 的例子:

文件模块: DemoLib.lua

local demo_mod = {} -- The main table function demo_mod.Mult(a, b)  return a * bend return demo_mod

现在在 Luamain 代码中, 我们可以加载这个 模块, 并且开始通过下面的代码来使用它:

-- Update the search pathlocal module_folder = "/home/jegx/my_kool_mods/"package.path = module_folder .. "?.lua;" .. package.path -- Load the moduledemo = require "DemoLib" -- Use it!local result = demo.Mult(10, 2)

如果 模块 不在 Lua 搜索路径中, 你可以用保存着 模块 文件的路径来更新 package.path.

如果因为某些原因你需要重新加载 模块(例如动态编程), 只要把 package.loaded["DemoLib"] 赋值 nil 就可以了:

...package.loaded["DemoLib"] = nildemo = require "DemoLib"...

我为了给示例创建一个高级而且更简单的接口开始在最近的例程 中使用 Lua模块. Lua 模块 的第一次使用在这篇文章的例程中.

参考

转载于:https://my.oschina.net/freeblues/blog/716572

你可能感兴趣的文章
【转】java与C++的区别
查看>>
VS2013 MVC Web项目使用内置的IISExpress支持局域网内部机器(手机、PC)访问、调试...
查看>>
Error: java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path
查看>>
Vue.js常用指令:v-show和v-if
查看>>
java自定义接口
查看>>
Codeforces Round #152 (Div. 2) B题 数论
查看>>
马云马化腾等大佬,是如何看待区块链的?
查看>>
10倍于行业增速!海尔冰箱套圈引领
查看>>
全球6大数据中心,日均10亿日志场景下的高可用实践
查看>>
京尊达小哥变身圣诞暖男,个性化服务持续升级
查看>>
宝成铁路上四等小站的春运
查看>>
世界高铁第一高隧的守护者 作业时手冻得裂开口子
查看>>
《广西经济社会发展报告(2019)》正式发布 聚焦发展热点
查看>>
贵州山区民众“赶集火车”运行44年 春运不停运
查看>>
2018年澳门进出内地车流量逾490万车次
查看>>
美团服务体验平台对接业务数据的最佳实践-海盗中间件
查看>>
Java集合总结【面试题+脑图】,将知识点一网打尽!
查看>>
前端面试&笔试&错题指南(二)
查看>>
API开发中如何使用限速应对大规模访问
查看>>
中国移动:Kubernetes在PaaS建设和NFV领域中的应用
查看>>