Lua基础
发布时间:2020-12-14 22:02:18 所属栏目:大数据 来源:网络整理
导读:--?mac?上有很多文本编辑器,Himi找了很多,感觉TextMate是比较好用的,小巧且功能强大!而且免费,图标是个小菊花?-?---?注释语句?--[[??注释段落语句??]]--?--引用其他lua文件,不需要加上(.lua)后缀--require?"xx"?--变量不需要定义,可以直接赋值count?=
--?mac?上有很多文本编辑器,Himi找了很多,感觉TextMate是比较好用的,小巧且功能强大!而且免费,图标是个小菊花?-?- --?注释语句 ? --[[?? 注释段落语句 ??]]-- ? --引用其他lua文件,不需要加上(.lua)后缀 --require?"xx" ? --变量不需要定义,可以直接赋值 count?=?100??--成员变量 local?count?=100??--局部变量 ? --方法定义 function?hello(...) ????--打印 ????print("Hello?Lua!"); ????print(string.format(...)) end ? --?每一行代码不需要使用分隔符,当然也可以加上 --?访问没有初始化的变量,lua默认返回nil ? --?调用函数形式 hello("你懂的") ? --打印变量的类型 isOK?=false print(type(isOK)) ? --?基本变量类型 a?=nil?--Lua?中值为nil?相当于删除 b?=10 c?=10.4 d?=false --定义字符串,单引号,双引号都可以的 e?="i?am" d?='himi' ? --两个字符串的连接可以如下形式 stringA?="Hi" stringB?="mi" print(stringA..stringB) ? --另外Lua也支持转移字符,如下 print(stringA.."n"..stringB); ? --修改字符串的部分gsub,可以如下形式:(将stringA字符串中的Hi修改为WT) stringA=string.gsub(stringA,"Hi","WT") print(stringA); ? --将字符换成数字tonumber(不转也会自动转) --将数字换成字符tostring(不转也会自动转) stringC?=?"100" stringC?=?tonumber(stringC) stringC?=?stringC?+20 stringC?=?tostring(stringC) print(stringC) ? --取一个字符串的长度使用?# print(#stringC) ? --创建?表 tableA?={} m?=?"x" tableA[m]?=100 m2?='y' tableA[m2]?=200 print(tableA["x"].."n"..tableA.y) --另外表还可以如下形式(从1开始) tableB?={"4","5","6","7","8"} print(tableB[1]) ? --算术操作符 c1?=?10+2 c2?=?10-2 c3?=?10*2 c4?=?10/2 c5?=?10^2 c6?=?10%2 c7?=?-10+2 print(c1.."_"..c2.."_"..c3.."_"..c4.."_"..c5.."_"..c6.."_"..c7) ? --控制操作 --if?then?elseif?then?else?end abc?=10 if??abc?==10?then ????print("v1") elseif?abc?==?9?then ????print("v2") else ????print("v3") end ? --for --从4(第一个参数)涨到10(第二个参数),每次增长以2(第三个参数)为单位 for?i=4,10,2?do ????print("for1:"..i+1) end --也可以不制定最后一个参数,默认1的增长速度 for?i=4,10?do ????print("for2:"..i+1) end ? tableFor?=?{"himi1","himi2","himi3","himi4","himi5"} for?k,v?in?pairs(tableFor)?do ????print("for3:key:"..k.."value:"..v) end ? --while w1?=?20 while?true?do ????w1=w1+1 ????if?w1?==25?then ????????break ????end end print("whlile:"..w1) ? --repeat ????aa?=20 ????repeat?aa?=?aa+2 ????????print("repeat:"..aa) ????until?aa>28 ? --关系操作符 --需要注意的是不等于符号?~=??而不是!= ax?=10 bx?=20 ? if?ax?>bx?then ????print("GX1") elseif?ax<bx?then ????print("GX2") elseif?ax>=bx?then ????print("GX3") elseif?ax<=bx?then ????print("GX4") elseif?ax==bx?then ????print("GX5") elseif?ax~=bx?then ????print("GX6") else ????print("GX7") end 其中主要需要注意的是,判断语句不等于,不再是!=?,在Lua中是~=? ,这个要注意。另外关于一些常见的函数如下详解: --函数详解 --有一个返回值的函数 function?funTestBackOne(aCount) ????local?aCount=?aCount+1 ????return?aCount end ? a?=20 print(funTestBackOne(a)) ? --有多个返回值的函数 function?funTestBackMore() ????return?2,3 end ? a,b?=funTestBackMore() print(a.."?and?"..b) ? --有变长参数的函数 function?funTestUnKnow(?...?) ????print(...) end funTestUnKnow(a,b,"Himi") ? --闭合函数(一个函数写在另外一个函数内) function?funTest1(?...?) ????local?d?=?12; ????d=d+... ????function?funTest2(?...?) ????????print(d) ????end ????funTest2() end ? funTest1(100) ? setmetatable 设置 table的元表, ?self.__index = self 设置查找失败后向上索引的 table? ?2者是实现继承的核心 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |