递归与迭代
自己调用自己.递归
程序调用自身的编程技巧称为递归,是函数自己调用自己,一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量
迭代
让程序对一组指令进行重复执行,在每次执行这组指令时,都从变量原值推出它的一个新值.迭代是对某个变量的重复推算,而递归是自身对自身的调用
print("------------rawget--------------------------------------------")
a={4,7,9}
bb=rawget(a,3)
print( rawget(a,2).." "..bb.."rawget(表,键) 获取表中指定的键对应的值,当表不存在时返回nil")
bbv={'a','s','a'}
print(rawget(bbv,2));
print("------------rawequal--------得出两个数是否相同------------------------------------")
print(rawequal(2,2))
print("------------dofile--------打开并且执行一个lua程序块------------------------------------")
dofile("G:/06_uLua&Lua/LuaEditor3.lua");
print("--------------------------next(表,键)--允许程序遍历表中的每一个字段,返回下一个键和该键对应的值")
nextBB={1,6,49}
print(next(nextBB,2))--"...返回结果是349,返回键3 值49"
print("-------------------------require(文件名)--作用,搜索目录加载文件,并判断是否文件已经加载避免重复加载同一文件")
require("G:/06_uLua&Lua/LuaEditor3.lua")
print("haha");
print(math.ceil(5.8));--6--不小于x的最大整数
print(math.ceil(5.4));--6
print(math.floor(5.8));-- 5 --不大于x的最大的整数
print(math.floor(5.4));--5
print(math.fmod(10,4));--2 取模,也就是余数,%
print(math.max(0,10,2,122,105));---122 取最大值,参数不限
print(math.min(1,10,111,15,17));--1
print(math.randomseed(os.time()))
print(math.random(-5,5))
tb={55,77,76,636,365}
print(table.concat(tb,",",2,3).." 作用:返回参数中表内从开始下标到结束下标中的所有数组部分,并用分隔符隔开.");
tb2={55,66,789}
table.insert(tb2,2,111);--table的增加,for的用法,table的长度(#tab2)
for i=1,table.maxn(tb2) ,1 do
print("insert.."..tb2[i]);
end
table.remove(tb2,3);
for i=1,table.maxn(tb2) ,1 do
print("remove "..tb2[i]);
end
sortFunc=function(a,b)
return b<a
end
table.sort(tb2,sortFunc)
for i=1,table.maxn(tb2) ,1 do
print("sort 从大到小排序."..tb2[i]);
end
print("---------------字符串---------------------");
print(string.len("abckd"));--5
print(string.rep("abck",2));--abckabck,也就是复制
print(string.lower("bcDdF"));--bcddf,全部小写
print(string.upper("abCDF"));--ABCDF全部大写
print(string.sub("abcd",2));--bcd截取字符串
print(string.sub("abcdef",-2));--ef截取最后两个
print(string.sub("abcdef",2,5))--bcde--从第二个到最5个(从1开始数)
print(string.byte("abcD",4));--68返回字符ascii
print(string.char(96,98,99,100));--`bcd ascii返回字符串
print(string.gsub("a1","a1","cfff"));--cfff1,为何多了一个1
print(string.gsub("aaaaa","a","Z",3));--ZZZaa3,多了一个3,则是替换了几个
print(string.find("cdc0dc1d","cd"));
print(string.format("send%cSi",101))--sendeSi %c,101 e的ascii码是100
print(string.format("send%dSi",110))--send110Si %d就是加出来的
print(string.format("send%05dSi",11))--send00011Si %05d就是要有5个位置来替换,不足则以0代替