Lua的自我学习之路-语法学习7

版权声明:本文为博主原创文章,未经博主允许不得转载。 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));

猜你喜欢

转载自blog.csdn.net/asdfghj253/article/details/80414369