lua表
1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分);
a.Lua表的数组部分的索引是从开始的, 1, 2, 3 ...称连续的索引;
b.Lua表的连续索引的长度(数组部分); #表的名字;
--数组部分 索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5])
--返回lua表里面数组部分的长度
--必须要求是连续的
print(#list_array) --5
--增加元素 因为索引不连续 增加失败
list_array[11] = 20
print(#list_array) --5 数组长度还是5
--增加元素成功
list_array[6] = 20
print(#list_array) --6 数组长度为6了
c.Lua表支持key, value模式;
2.遍历表
a.
b.
源码:
--数组部分 索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5])
print("$$$$$$$$$$$$$$$$$")
--遍历lua里面的数组部分的数据
local index = 1
for index = 1,#list_array do
print(list_array[index])
end
print("$$$$$$$$$$$$$$$$$")
--遍历表里面所有的数据
for k,v in pairs(list_array) do
print(k,v)
end
结果显示
3.表的接口
1: table.insert(table, pos, value):
--数组部分 索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5])
--插入数据
table.insert(list_array,2,8)
for k,v in pairs(list_array) do
print(k,v)
end
在table的数组部分指定位置(pos)插入值为value的一个元素, pos参数可选, 默认为数组部分末尾
2: table.remove(table, pos)
函数删除并返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起
3: table.sort(table, 比较函数): 对table进行排序
--数组部分 索引从1开始(lua特色)
local list_array = {20,10,30,5,6}
--20 10 30 5 6
print(list_array[1],list_array[2],list_array[3],list_array[4],list_array[5])
print("$$$$$$$$$$$$$$$$$$$$")
--排序
table.sort(list_array)
--遍历所有数据
for k,v in pairs(list_array) do
print(k,v)
end
4: table.getn(table)返回表中元素的个数; -->数组部分 (与#类似)