lua之table

本文介绍了Lua中的核心数据结构——Table,详细阐述了如何通过整数下标和键值对来访问元素,以及Table在实现数组、集合和包中的应用。重点讨论了元表(metatable)和元方法,包括元表的获取与设置、metatable如何改变table行为,以及__index和__newindex元方法在表访问和更新中的作用。
摘要由CSDN通过智能技术生成

1、table是Lua中唯一的数据结构,其他语言所提供的数据结构都是通过table来实现的;

(1)在Lua中通过整数下标访问table中的元素,就是数组,并且数组的大小不是固定的,可以动态增长。

a = {} --新建一个table

for i = 1, 1000 do

a[i] = 0

end

给数组的每一个元素赋值,范围之外的元素为nil,在Lua中默认的下标是从1开始的,标准库中的方法都是以此为标准。

(2)在Lua中也可以通过key来访问和设置元素,同样用键值对来查询数据。

a = {}

a["name"] = "wahaha"

a["age"'] = 100

2、Lua中的集合和包也是通过table来实现的,将集合中的所有数据和方法放在一个统一的table中,根据table来取出

包中的数据

3、元表和元方法:metatable / metamethod

Lua中metatable可以允许我们改变table的行为,比如可以定义metatable来定义两个table的相加行为,Lua中的每一个表都有其metable,默认创建一个不带metatable

的新表

t1 = {}

getmetatable(t1) -- 获取元表

t1 = {}

setmetatable(t1,t2) --设置元表,t1的元表为t2

任何表都可以是其他一个表的元表,一组行为类似的表可以共享一个m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值