Lua里的table小结
table:既可以当数组用也可以当字典用
一、作为数组
1、定义 : local list={10,12,15,16,20};
2、插入:
table.insert (table, [pos,] value):
在table的数组部分指定位置(pos)插入值为value的一个元素. pos参数可选, 默认为数组部分末尾.
eg: 向list里插入22
table.insert(list,2,22);//在2号位置插入一个22
list[#list+1]=22;
3、删除:
table.remove (table [, pos])
返回table数组部分位于pos位置的元素. 其后的元素会被前移. pos参数可选, 默认为table长度, 即从最后一个元素删起。
eg:删除下标为2的值
table.remove(list,2);
list[2]=nil;
4、遍历方式:
(1):for i=1,#list,1 do
print(i,list[i]);
end
(2):for k,v in ipairs(list) do
print(k,v);
end
二、作为字典
1、定义 : local dict={id=1001,name="Amu",sex="男",age=22};
2、插入:
dict["tel"]="123456789";//该方法添加时,键需要用“”号
3、删除:
dict["xx"]=nil;
4、遍历:
for k,v in ipairs(dict) do
print(k,v);
end
三、总结:
1、ipairs:只用来遍历数组
pairs:既可以用来遍历字典,也可以用来遍历数组
2、连接:
table.concat (table [, sep [, start [, end]]]):
concat是concatenate(连锁, 连接)的缩写. table.concat()函数列出参数中指定table的数组部分从start位置到end位置的所有元素, 元素间以指定的分隔符(sep)隔开。
实例
-- 返回 table 连接后的字符串
print("连接后的字符串 ",table.concat(fruits))
-- 指定连接字符
print("连接后的字符串 ",table.concat(fruits,", "))
-- 指定索引来连接 table
print("连接后的字符串 ",table.concat(fruits,", ", 2,3))
执行以上代码输出结果为:
连接后的字符串 bananaorangeapple 连接后的字符串 banana, orange, apple 连接后的字符串 orange, apple
3、排序:
table.sort (table [, comp])
对给定的table进行升序排序。
以下实例演示了 sort() 方法的使用,用于对 Table 进行排序:
实例
print("排序前")
for k,v in ipairs(fruits) do
print(k,v)
end
table.sort(fruits)
print("排序后")
for k,v in ipairs(fruits) do
print(k,v)
end
执行以上代码输出结果为:
排序前1 banana2 orange3 apple4 grapes 排序后1 apple2 banana3 grapes4 orange
评论