翻译自: How to Create a Lua Module编程
Lua编程语言
中的一个 模块
(module
)是一个包含函数和变量的代码片断: 它是一个用户库. 它是把你的代码切分为多个文件的一种有力方法. 一个 模块
用 Lua
关键字 require
来加载. 模块
被编码到一个以 .lua
做为扩展名的文件中, 而且这个文件必须出如今 Lua
包搜索路径(package.path
) 中.编程语言
一个 模块
实际上就是一个带有函数的 Lua
表(table
)(这里有关于 Lua
的一个快速介绍). 这个表在 模块
文件的最后被返回. 这里有一个叫作 DemoLib.lua
的简单的 Lua
的 模块
的例子:函数
文件模块: DemoLib.lua
ui
local demo_mod = {} -- The main table function demo_mod.Mult(a, b) return a * b end return demo_mod
如今在 Lua
的 main
代码中, 咱们能够加载这个 模块
, 而且开始经过下面的代码来使用它:编码
-- Update the search path local module_folder = "/home/jegx/my_kool_mods/" package.path = module_folder .. "?.lua;" .. package.path -- Load the module demo = require "DemoLib" -- Use it! local result = demo.Mult(10, 2)
若是 模块
不在 Lua
搜索路径中, 你能够用保存着 模块
文件的路径来更新 package.path
.lua
若是由于某些缘由你须要从新加载 模块
(例如动态编程), 只要把 package.loaded["DemoLib"]
赋值 nil
就能够了:翻译
... package.loaded["DemoLib"] = nil demo = require "DemoLib" ...
我为了给示例建立一个高级并且更简单的接口开始在最近的例程 GLSL Hacker 中使用 Lua
的 模块
. Lua
模块
的第一次使用在这篇文章Exploring GLSL – Normal Visualizer with Geometry Shaders (Shader Library)的例程中.3d