模块(Module)
Lua 中的模块是一种将相关功能封装在一起的方式,以便在其他程序中重用。模块可以包含变量、函数和表。一个简单的模块示例如下:
-- 定义一个模块
local myModule = {}
-- 模块中的变量
myModule.myVariable = "Hello, Module!"
-- 模块中的函数
function myModule.myFunction()
print("Function in Module")
end
-- 返回模块
return myModule
在其他文件中使用这个模块:
-- 引入模块
local myModule = require("myModule")
-- 使用模块中的变量和函数
print(myModule.myVariable) -- 输出 "Hello, Module!"
myModule.myFunction() -- 输出 "Function in Module"
包(Package)
包是一种用于组织模块的方式。在 Lua 中,一个包实际上就是一个包含多个模块的表。一个简单的包的示例如下:
-- 定义一个包
local myPackage = {}
-- 包中的模块
myPackage.module1 = require("module1")
myPackage.module2 = require("module2")
-- 返回包
return myPackage
在其他文件中使用这个包:
-- 引入包
local myPackage = require("myPackage")
-- 使用包中的模块
myPackage.module1.myFunction() -- 调用 module1 中的函数
使用文件系统组织模块和包
通常,模块和包的文件组织方式与文件系统的目录结构相对应。例如,一个模块可能存储在名为 module1.lua 的文件中,而一个包可能包含一个名为 package.lua 的文件和多个模块文件。