首页 学习日记正文

Lua里的table小结

阿沐 学习日记 2019-08-27 582 0 Lua

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)隔开。

实例

fruits = {"banana","orange","apple"}
-- 返回 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 进行排序:

实例

fruits = {"banana","orange","apple","grapes"}
print("排序前")
for k,in ipairs(fruits) do
        print(k,v)
end

table.sort(fruits)
print("排序后")
for k,in ipairs(fruits) do
        print(k,v)
end

执行以上代码输出结果为:

排序前1    banana2    orange3    apple4    grapes
排序后1    apple2    banana3    grapes4    orange




打赏

评论

Music