Lua 语言中的数组其实就是table 类型。 table 是Lua 语言中的一种“代码格式结构”,而Lua 当中的数组就是使用table 这种结构实现的。 下面的这些文字知识点是别人总结的,我感觉这个总结的非常好,没有一句废话,完全就是标准呀。所以这次就没有自己写文字总结,但是代码不敢偷懒,是自己写的。

一.给table 赋值

有两种操作: 1.数组方式,就是以角标方式进行赋值,1,2,3,4,5….. 2.键值对方式,类似于C#当中的Dictionary<k, v>泛型字典.

二.迭代器方式遍历table

for key, value in ipairs(表名) do print(key, value) end 备注:如果是数组结构,用ipairs 方法;如果是键值对结构,用pairs 方法.

三.table相关方法

<1>增加元素 table.insert(表名, [位置], 值) 往指定的位置增加元素,如果不写位置,默认往最后一个位置增加。 这个方式适合“数组模式”,不太适合“键值对模式”。 键值对就用:表名[‘键’] = 值的方式添加即可。 <2>移除元素 table.remove(表名, [位置]) 如果不写位置,默认移除最后一个元素,如果位置值超出范围,不会报错,也不 会有元素被移除。 这个方式适合“数组模式”,不能用于“键值对模式”。 键值对就用:表名[‘键’] = nil 的方式移除即可。 <3>table 长度 table.getn(表名) 返回table 表的长度。 这个方式适合“数组模式”,不能用于“键值对模式”。 键值对就用:迭代器迭代,然后累加一个变量的方式获得长度。 上面东西比较多,大致看下就行,关键还是要看代码,代码如下:

--数组的数组类型是table类型
array={1,2,3,4,5,6}
print(“Lua数组的类型是:”..type(array))

print(“———–以数组角标方式对table01赋值———-“)
table01={}
table01[1]=”郑州大学北校区”
table01[2]=”郑州大学新校区”

–数组模式增加元素
table.insert(table01,3,”郑州大学东校区”)
table.insert(table01,4,”郑州大学南校区”)
–数组模式移除元素
table.remove(table01,3)
–数组长度
print(“table01的长度是”..table.getn(table01))

print(“———–迭代器方式遍历table01—————“)
for key,value in ipairs(table01) do
print(key,value)
end

print(“———————————————–”)
print(“———————————————–”)

print(“———–以键值对方式对table02赋值———–”)
table02={}
table02[“马云”]=”阿里巴巴”
table02[“任正非”]=”华为”

–键值对方式增加元素
table02[“李彦宏”]=”百度”
–键值对方式移除元素
table02[“马云”]=nil
–键值对方式不能用table.getn获取长度
–我们定义一个index,利用迭代器的迭代获取长度
index=0

print(“———–迭代器方式遍历table02—————“)
–注意ipairs和pairs的区别
for key,value in pairs(table02) do
print(key,value)
index=index+1
end
print(“table02的长度是”..index)

结果如下:

>lua -e “io.stdout:setvbuf ‘no’” “1.lua”
Lua数组的类型是:table
———–以数组角标方式对table01赋值———-
table01的长度是3
———–迭代器方式遍历table01—————
1 郑州大学北校区
2 郑州大学新校区
3 郑州大学南校区



———–以键值对方式对table02赋值———–
———–迭代器方式遍历table02—————
任正非 华为
李彦宏 百度
table02的长度是2

Exit code: 0