<4>Lua表

lua表

1: lua没有数组,但是表可以代替数组的功能(数组部分与非数组部分);

    a.Lua的数组部分的索引是从1开始的, 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)返回表中元素的个数; -->数组部分   (与#类似)


猜你喜欢

转载自blog.csdn.net/jadeshu/article/details/79837230