1. 注释
--[[
多行
注释
]]
--[[
第二种
多行
注释
]]--
--[[
第三种
多行
注释
--]]
2. lua 当中的简单变量类型
nil number string boolean
lua中所有的变量申明 都不需要申明变量类型 他会自动的判断类型
lua中的一个变量 可以随便赋值 ——自动识别类型
通过 type 函数 返回值时string 我们可以得到变量的类型
lua中使用没有声明过的变量
不会报错 默认值 是nil
a = nil
print(a)
print(type(a))
print(type(type(a)))
3.字符串
字符串拼接 通过…
print( "123" .. "456" )
s1 = 111
s2 = 111
print(s1 .. s2)
print(string.format("我是hmm,我今年%d岁了", 18))
--%d :与数字拼接
--%a:与任何字符拼接
--%s:与字符配对
print("**********别的类型转字符串************")
a = true
print(tostring(a))
print("**********字符串提供的公共方法************")
str = "abCdefgCd"
--小写转大写的方法
print(string.upper(str))
--大写转小写
print(string.lower(str))
--翻转字符串
print(string.reverse(str))
--字符串索引查找
print(string.find(str, "Cde"))
--截取字符串
print(string.sub(str, 3, 4))
--字符串重复
print(string.rep(str, 2))
--字符串修改
print(string.gsub(str, "Cd", "**"))
--字符转 ASCII码
a = string.byte("Lua", 1)
print(a)
--ASCII码 转字符
print(string.char(a))
4. 条件语句
多分支
if 条件 then…elseif 条件 then…elseif 条件 then…else…end
lua中 elseif 一定是连这些 否则报错
if a >= 3 and a <= 9 then
print("3到9之间")
end
lua中没有switch语法 需要自己实现
5. 循环
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
6. 函数
print("**********函数的重载************")
--函数名相同 参数类型不同 或者参数个数不同
--lua中 函数不支持重载
--默认调用最后一个声明的函数
function F6()
print("abc test")
end
function F6(str)
print(str)
end
F6()
print("**********变长参数************")
function F7( ... )
--变长参数使用 用一个表存起来 再用
arg = {
...}
for i=1,#arg do
print(arg[i])
end
end
F7(1,"123",true,4,5,6)
--闭包
function F9(x)
--改变传入参数的生命周期
return function(y)
return x + y
end
end
f10 = F9(10)
7. table
所有的复杂类型都是table(表)
–lua中 索引从1开始
print("**********数组************")
a = {
1,2,nil,3,"1231",