模块
2024/4/7小于 1 分钟
模块
理解
从Lua5.1开始,Lua添加了对模块和包的支持
Lua 的模块是由变量、函数等已知元素组成的 table,因此创建一个模块很简单,就是创建一个table 然后把需要导出的常量、函数放入其中,最后返回这个 table 就行
示例:mymodule.lua
local _M = {}
_M.VERSION = "1.0"
_M.getName = function()
return "get"
end
return _M使用require即可引入模块
local m = require "mymodule"
print(m.VERSION)
print(m.getName())
-- 输出
1.0
get点号与冒号操作符
示例
local str = "abcde"
print("case 1:", str:sub(1, 2))
print("case 2:", str.sub(str, 1, 2))
-- 输出
case 1: ab
case 2: ab冒号操作会带入一个 self 参数用来代表 自己 。而点号操作只是内容的展开,需要手动传入self 参数
在函数定义时使用冒号将默认接收一个 self 参数,而使用点号则需要显式传入 self 参数
mytable = {}
mytable.func1 = function(self, name)
self.name = name
end
mytable:func2 = function(name)
self.name = name
end
-- 这里的func1和func2是等价的