大家好,欢迎来到IT知识分享网。
前言
一、变量
简单变量类型(nil、number、string、 boolean)
print("nil") --lua中使用没有声明过的变量 --不会报错 默认值 是nil print(b) --nil a = nil print(a) --nil print(type(a)) --nil print(type(type(a))) --string
Lua中所有数值都是number,其本质是 C 中的 double类型。
print("number") a = 1 print(a) --1 print(type(a)) --number a = 1.2 print(a) --1.2 print(type(a)) --number
字符值都是string类型,使用双引号或者单引号包裹。Lua中没有char类型。
print("string") str = "双引号字符串" str2 = '单引号字符串' --获取字符串的长度 print("字符串长度") s = "aBcdEfG字符串" --不同编码汉字所占长度不同 2-4(UTF-8中占3个) --英文字符 占1个长度 print(#s) --16 print("字符串多行打印") --lua中也是支持转义字符的 print("123\n123") s = [[使用 多行 打印 ]] print(s) print("字符串拼接") --字符串拼接 通过.. print( "123" .. "456" ) -- s1 = 111 s2 = 222 print(s1 .. s2) -- print(string.format("我是Canon,我今年%d岁了", 18)) --%d :与数字拼接 --%a:与任何字符拼接 --%s:与字符配对 --....... print("别的类型转字符串") a = true print(tostring(a)) --true print("字符串提供的公共方法") str = "AbCdefg" --小写转大写的方法 print(string.upper(str)) --ABCDEFG --大写转小写 print(string.lower(str)) --abcdefg --翻转字符串 print(string.reverse(str)) --gfedCbA --字符串索引查找(这里返回两个值,表示开始和结束位置) print(string.find(str, "Cde")) --3 5 --截取字符串 print(string.sub(str, 3, 4)) --Cd --字符串重复(不咋用到) print(string.rep(str, 2)) --AbCdefgAbCdefg --字符串修改(这里返回两个值,第一个是修改后的字符串,第二个是修改的次数) print(string.gsub(str, "Cd", "")) --Abefg 1 --字符转 ASCII码 (将字符串中第几个字符转ASCII码) a = string.byte("Lua", 1) --76 print(a) --ASCII码 转字符 print(string.char(a)) --L
布尔类型boolean
print("boolean") a = true print(a) --true a = false print(a) --false print(type(a)) --boolean
二、运算符
print("算数运算符") --字符串 可以进行 算数运算符操作 会自动转成number print("加法运算" .. 1 + 2) a = 1 b = 2 a = a + b a = a + 1 print(a + b) --6 print("123.4" + 1) --124.4 print("减法运算" .. 1 - 2) print("123.4" - 1) --122.4 print("乘法运算" .. 1 * 2) print("123.4" * 2) --246.8 print("除法运算" .. 1 / 2) print("123.4" / 2) --61.7 print("取余运算" .. 1 % 2) print("123.4" % 2) --1.4 --^ lua中 该符号 是幂运算 print("幂运算" .. 2 ^ 5) print("123.4" ^ 2) --15227.56 print("条件运算符") -- > < >= <= == ~= print(3>1) --true print(3<1) --false print(3>=1) --true print(3<=1) --false print(3==1) --false --不等于 是 ~= print(3~=1) --true print("逻辑运算符") --与 或 非 --and or not print( true and false) --false print( true and true) --true print( false and true) --false print( true or false) --true print( false or false) --false print( not true) --false print("位运算符") -- & | 不支持位运算符 需要我们自己实现 print("三目运算符") -- ? : lua中 也不支持 三目运算 -- lua中除了nil 和 false,其他值均判断为 true -- 利用这个特性可以实现类似三目运算符的效果 if() and () or ()
三、流程控制语句
条件分支语句 if,不支持switch语句
print("条件分支语句") a = 9 --if 条件 then.....end --单分支 if a > 5 then print("123") end --双分支 -- if 条件 then.....else.....end if a < 5 then print("123") else print("321") end --多分支 -- if 条件 then.....elseif 条件 then....elseif 条件 then....else.....end if a < 5 then print("123") elseif a == 6 then print("6") elseif a == 7 then print("7") else print("other") end if a >= 3 and a <= 9 then print("3到9之间") end --lua中没有switch语法 需要自己实现
循环控制语句 while ,repeat,for
print("while语句") num = 0 --while 条件 do ..... end while num < 5 do print(num) num = num + 1 end print("do while语句") num = 0 --repeat ..... until 条件 (注意:条件是结束条件) repeat print(num) num = num + 1 until num > 5 --满足条件跳出 结束条件 print("for语句") for i =2,5 do --默认递增 i会默认+1 print(i) end for i =1,5,2 do --如果要自定义增量 直接逗号后面写 print(i) end for i =5,1,-1 do --如果要自定义增量 直接逗号后面写 print(i) end
总结
Lua是弱类型的脚本语言,语法看起来和JavaScript有点相似,还是挺容易上手的。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/117151.html