我的学习C#回炉学习日志——Lua热更新06_模块

本文介绍了Lua中的包机制,如何使用table记录变量和常量,以及元表在实现对多个table操作和处理查找失败时的作用,通过实例演示了元表的设置和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

模块

个人理解:lua的包比起C#,基本上就是一个table记录所有信息,包括变量、常量等

module ={}
module.constant = "一个常量"
function module.func1()
	io.write("一个共有函数\n")
end



local  function  func2()
	-- body
	print("一个私有函数")
end 

function module.func3( ... )
	-- body
	func2()
end

return module
--调用--
require("module")
print(module.constant)
module.func3()

元表

  • 引入原因:可以实现对多个table操作,允许改变table的行为,每个行为关联对应的元方法。当table的键找不到对应的值时,如果table有元表,便会对元表进行检索。(元表可以理解为当查找失败时的catch(操作指南),告诉程序此时怎么办)
  • 基本格式:
--基本格式--
mytable = {}
mymetatable = {}
setmetatable(mytable,mymetation)
--简化--
mytable = setmetatable({},{})
--返回值--
getmetatable(mytable)
  • 实例:
mytable={}
mytable["x1"] = "找到到的值"
mymetatable = {
	X2 = "找不到的值"
}
mymetatable.__index = mymetatable --将_index赋给元表
setmetatable(mytable,mymetatable)

print(mytable.X2)                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值