0
点赞
收藏
分享

微信扫一扫

Lua学习

米小格儿 2023-07-15 阅读 36

table(表):

--初始化表
mytable={}
--指定值
mytable[1]="Lua"
--移除引用
mytable=nil

模块与包——相当于类 :

模块:变量、函数等组成。

--定义名为 module 的模块
module={}

--定义常量
module.constant="这是一个变量"

--定义函数
function module.func1()
    io.write("这是一个私有函数!")
end

local function.func2()
    print("这是一个私有函数!")
end

function module.func3()
    func2()
end

return module

加载模块

require("<模块名>") 或 require "<模块名>"

require("module")
print(module.constant)
module.func3()
local m=require("module")
print(m.constant)
m.func3()

Metatable(元表)

setmetatable()

mytable={}                             --普通表
mymetatable={}                         --元表
setmetatable(mytable,mymetatable)      --把mymetatable设为mytable的元素
mytable=setmetatable({},{})

__index元方法

__newindex元方法

mymetatable = {}
mytable = setmetatable({key1 = "value1"}, { __newindex = mymetatable })

print(mytable.key1)

mytable.newkey = "新值2"
print(mytable.newkey,mymetatable.newkey)

mytable.key1 = "新值1"
print(mytable.key1,mymetatable.key1)

结果:

value1
nil    新值2
新值1    nil

表的操作符

__add:"+"

__sub:"-"

__mul:"*"

__div:"/"

__mod:'%'

__eq:'=='

__lt:'<'

__le:'<='

__call 元方法

__tostring 元方法

举报

相关推荐

0 条评论