版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfghj253/article/details/80414369
要点一:table
table的销毁
mytable={}
mytable[1]="Lua"
mytable[1]=nil;--位置为空 但不会移除
mytable=nil; --销毁表
table的实质
mytable={}
newtable=mytable;
mytable[1]="dddd";
print(mytable[1]);
print(newtable[1]); --输出都是dddd 因为两个表都是指向一个地方的,实质上table是引用
table.concat() 拼接字符串
mytable={"lua","c#","java","c++","c"}
print(table.concat(mytable)) --table.concat() 拼接mytable里面的字符串
--返回 luac#javac++c
print(table.concat(mytable," ")) --这样拼接的时候每个字符串之间有空格
--返回 lua c# java c++ c
print(table.concat(mytable," ",2,4)) --拼接从二到四的字符串
--返回 c# java c++
table的插入数据
mytable[#mytable+1]="php" --table 末尾加个字符串
table.insert(mytable,"sadsda"); --添加新数据到table --table.insert(表名,要插入的数据)
table.insert(mytable,2,"boo"); --插入到mytable的位置,原来的2和2以后的位置向后移
mytable[2]=nil --2位置为空 但不会移除
table.remove(mytable,2) --移除2位置
table的排序
for k,v in ipairs(mytable) do--排序前
print(k,v);
end
--[[
返回
1 lua
2 c#
3 java
4 c++
5 c
6 php
7 sadsda
]]--
table.sort(mytable); --按Ascii码来排的 先大写再小写 由A-z
for k,v in ipairs(mytable) do--排序后
print(k,v);
end
--[[
返回
1 c
2 c#
3 c++
4 java
5 lua
6 php
7 sadsda
]]--
取table最大值
xxtable={21,15,65,84,95,12,32,65,48,44}
table.maxn(xxtable); --table.maxn() 取表的长度
function get_max(tab)
local mn=0
for k,v in pairs(tab) do
if(mn<v) then
mn=v;
end
end
return mn;
end
print(get_max(xxtable));