#table是Lua语言中的数据结构,用来帮助在Lua中创建不同的数据类型,例如数组、字典、模块...
数组:
--[[
使用table创建数组
]]--
tableArray1 = {} --数组结构的初始化
tableArray1 = {"c","c++","c#","oc","java","kotlin",["s1"]= "python",["s2"]= "lua", ["s3"]= "javascript"} --使用默认索引,以及自定义索引
tableArray1[1] = "php" --使用默认索引对值进行修改
function ipairsPrint(table)
print("\nipairs迭代器对索引升序遍历,索引中断遍历停止")
for k,v in ipairs(table) do
print(k .. "---"..v)
end
end
ipairsPrint(tableArray1)
function pairsPrint(table)
print("\npairs迭代器遍历所有元素")
for k,v in pairs(table) do
print(k.."--"..v)
end
end
pairsPrint(tableArray1)
table数组相关方法
print("table模块下常用方法:")
res1 = table.concat(tableArray1) --字符串数组相连接
res2 = table.concat(tableArray1,">") --给字符串数组元素添加分隔符并返回字符串
res3 = table.concat(tableArray1,">",2,6) --给字符串数组指定元素添加分隔符返回字符串
print("table.concat(tableParam)方法的结果是:",res1)
print("table.concat(tableParam,splitMark)的结果是:",res2)
print("table.concat(tableParam,splitMark,startIndex,endIndex)的结果是:",res3)
res4 = table.insert(tableArray1,"swift") --给数组插入元素,无其他参数直接在末尾插入
res41 = table.concat(tableArray1,">")
print("table.insert(tableParam,insertValue)的结果是:",res41) --插入后的并连接字符串之后的结果
print("插入之前tableArray1[3] = ",tableArray1[3])
res5 = table.insert(tableArray1,3,"javascript") --给指定位置添加元素,原位置及其后的元素依次后移
print("插入之后tableArray1[3] = ",tableArray1[3])
res5 = table.insert(tableArray1 ,4,"go")
res51 = table.concat(tableArray1,">")
print("table.insert(tableParam,insertIndex,insertValue的结果是:)",res51)
print("4号位置插入go之后的tableArray为:")
ipairsPrint(tableArray1)
res6 = table.remove(tableArray1,3) --移除指定位置上的元素后,其后的元素依次向前移动
table其他方法
print("\ntable相关方法\n")
function table_max (table)
local max
for k,v in pairs(table) do
if(max == nil) then
max = v
end
if(max < v) then
max = v
end
end
print( "the max of the table is :",max)
return max
end
tableArray2 = {5,35,5,2,4,555,4,52,4,eg1 = 123, eg2 = 345 }
print("\nUse the table.sort function")
table.sort(tableArray2)
ipairsPrint(tableArray2)
pairsPrint(tableArray2)
print("\nGet the max num of a number table")
table_max(tableArray2)
--[[
在Lua中使用#tableName所得到的长度只到索引中断处
]]--
print(#tableArray2) --
--可以自行书写一个获取数组结构表的成员个数
function table_num(t)
local num = 0
for k,v in pairs(t) do
num = num +1
end
return num
end
print(table_num(tableArray2))