目录
Lua表的定义
- 案例1:
mytable = {} mytable[1] = "Lua" --表可以自动扩充 mytable[1] = nil --删除第一个元素 mytable = nil --删除表
- 案例2:
mytable = {} --创建空表 print( type(mytable) ) --输出为table
- 案例3:
mytable = {} mytable[1] = "Lua" mytable["name"]="siki" newtable = mytable --newtable与mytable指向同一张表,可以看成引用 print(newtable[1]) --Lua print(mytable[1]) --Lua newtable[1]="C#" print(newtable[1]) --C# print(mytable[1]) --C# newtable[2]="Java" print(mytable[2]) --Java mytable = nil print(mytable.name) --mytable已经删除,这里报错 print(newtable.name) --siki --想要彻底删除这张表,使newtable = nil
table连接、插入、删除、排序
table连接:table.concat
mytable = {"Lua","C#","Java","C++","C","abc","ABC"} print( table.concat(mytable) ) --将table中所有字符串进行连接 print( table.concat(mytable,",") ) --将table中字符串以","分隔进行连接 print( table.concat(mytable,",",2,4) ) --将table中索引2至4字符串以","分隔进行连接 输出: LuaC#JavaC++CabcABC Lua,C#,Java,C++,C,abc,ABC C#,Java,C++
table插入:table.insert
mytable = {"Lua","C#","Java","C++","C","abc","ABC"} --mytable[6]="PHP" mytable[#mytable+1]="PHP" print(mytable[#mytable]) table.insert( mytable,"Javascript" ) print(mytable[#mytable]) table.insert(mytable,2,"Boo") print(mytable[2],mytable[3]) 输出: PHP Javascript Boo C#
table移除:table.remove
mytable = {"Lua","C#","Java","C++","C","abc","ABC"} mytable[2]=nil print(mytable[2]) table.remove(mytable,2) print(mytable[2]) 输出: nil Java
table排序:table.sort
mytable={34,32,34,2,45,45,435,6,4576} print("排序前") for k,v in ipairs(mytable) do print(k,v) end table.sort(mytable) print("排序后") for k,v in ipairs(mytable) do print(k,v) end 输出: 排序前 1 34 2 32 3 34 4 2 5 45 6 45 7 435 8 6 9 4576 排序后 1 2 2 6 3 32 4 34 5 34 6 45 7 45 8 435 9 4576