1、输出语句为 print
2、lua语句省略分号
3、注释
1.单行注释 --
2.多行注释 --[[......]]
或者 --[[......]]--
或者 --[[......--]]
4、lua 当中的简单数据类型有四种
nil number string boolean
lua中所有变量会自动申明变量类型 不需要手动申明
nil是空类型
所有的数值都是number类型
字符串使用单引号或者双引号接收,lua中没有char类型
例: a = nil
a = 1
a = "1" 或 a = '1'
a = true
5、lua中的复杂数据类型有四种(后面表现)
function table userdata thread
6、type()函数可以获得变量的类型
type(a)
7、字符串相关
str = "123"
1.获取字符串长度
#str
2.字符串多行打印
(1)print("1\n3")
(2)str = [[1
2
3
]]
print(str)
3.字符串拼接
(1)print("123" .. "456")
(2)s1 = "11"
s2 = 22
print(s1 .. s2)(都是number可以拼接)
(3)print(string.format("我是XXX,我今年%d岁了",18))
--%d :与数字拼接
--%a :与任何字符拼接
--%s :与字符配对
4.类型转字符串
tostring(a)
5.字符串提供的常用公共方法
str = "ABcdefg"
--小写转大写的方法
print(string.upper(str))
print(str)
--大写转小写
print(string.lower(str))
--翻转字符串
print(string.reverse(str))
--字符串索引查找
print(string.find(str,"Cde"))
--截取字符串
print(string.sub(str,3))
print(string.sub(str,3,4))
--字符串重复
print(string.rep(str,1))
print(string.rep(str,2))
--字符串修改
print(string.gsub(str,"Cd","**"))
--字符转ASCII码
a = string.byte("Lua",1)
print(a)
--ASCII码 转字符
print(string.char(a))
8、运算符
1.注意事项:
在lua中没有自增自减
没有复合运算符
字符串 可以进行 算数运算符操作 会自动转成number
2.基本运算
print("加法运算".. 1+2)
print("10" + 1)
print("减法运算" .. 1 -2)
print("10" - 1)
print("乘法运算" .. 1 * 2)
print("10" * 2)
print("除法运算" .. 1 / 2)
print("10" / 2)
print("取余运算" .. 1 % 2)
print("10" % 2)
--^ lua中 该符号 是幂运算
print("幂运算" .. 2 ^ 5)
print("10" ^ 2)
3.条件运算符
-- > < >= <= ~=
4.逻辑运算符
and or not lua中 也遵循逻辑运算的 “短路” 规则 取反为not
例:
print(true and false)
print(true and true)
print(true or false)
print(true or true)
print(not true)
print(false and print("123"))
5.位运算符
lua不支持位运算 需要人为实现
6.三目运算符
lua中不支持三目运算符
9、条件分支语句
1.单分支语句
if 条件 then......end
例:
if a > 5 then
print("123")
end
2.双分支语句
if 条件 then......else......end
例:
if a < 5 then
print("123")
else
print("321")
end
3.多分支语句
if 条件 then......elseif 条件 then......else......end
例:
if a < 5 then
print("123")
elseif a == 6 then
print("6")
elseif a == 7 then
print("7")
elseif a == 8 then
print("8")
elseif a == 9 then
print("9")
else
print("other")
end
4.lua中没有switch语句 需要自己实现
10、循环语句
1.while语句
while 条件 do ...... end
例:
num = 0
while num < 5 do
print(num)
num = num + 1
end
2.do while语句
repeat ...... until 条件 (注意:条件是结束条件)
例:
num = 0
repeat
print(num)
num = num + 1
until num > 5 --满足条件跳出 结束条件
3.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
11、函数
两种形式
(1)function 函数名()
......
end
(2)a = function()
......
end
1.无参数返回值
function F1()
print("F1函数")
end
F1()
--有点类似 C#中的 委托和事件
F2 = function()
print("F2函数")
end
F2()
2.有参数
function F2(a)
print(a)
end
F2(1)
F2("123")
F2(true)
--如果你传入的参数 和函数参数个数不匹配
--不会报错 只会补空nil 或者 丢弃
F2()
F2(1,2,3)
3.有返回值
function F3(a)
return a,"123",true
end
--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 只接取对应位置的返回值
--如果变量多了 不应 直接赋nil
temp,temp2,temp3,temp4 = F3("1")
4.函数的类型
函数的类型就是function 就是之前提的复杂数据类型之一
可以有type()显示出来
例如:
F4 = function()
print("123")
end
print(type(F4))
5.函数的重载
重载:函数名相同 参数类型不同 或者参数个数不同
在lua中函数并不支持重载
如果函数同名,默认调用最后一个声明的函数
例:
function F5()
print("函数重载")
end
function F5(str)
print(str)
end
F5()
这里的执行结果为:nil
6.变长参数
变长参数的使用 是用一个表存起来(表后面会提到)
例:
function F6( ... )
--变长参数使用 用一个表存起来 再用
arg = {...}
for i=1,#arg do
print(arg[i])
end
end
F6(1,"123",true,4,5,6)
7.函数嵌套
例:
function F7()
return function()
print(123)
end
end
f8 = F7()
f8()
8.闭包
这里的例子实现了改变传入参数的生命周期,具体含义应该进行百度百科,以及各种渠道询问
例:
function F8(x)
--改变了传入参数的生命周期
return function(y)
return x + y
end
end
f9 = F8(10)
print(f9(5))