文章针对于有一定编程基础编写,同时语法跟python相似,需要注意空格,换行。
注意:
1.lua语言不支持自加自减操作
1.快速上手编译环境
Lua语言是一种轻量级语言,在浏览器中即可快速上手体验,点击下方链接即可跳转。
变量
1.1变量声明
a = 123
1.2声明局部变量
在lua里面声明的变量默认为全局变量(在别的文件也可以访问),如果想创建局部变量加上local
local a= 123
1.3未声明的变量
在lua中,如果没有声明变量,那么返回值都是nil类型(空,相当于c语言NUll)。
print(x) --因为x没有声明打印出来为空
1.4多重赋值
lua语言可以实现多个变量同时赋值
a,b = 1,2 --print(a,b) //结果为1 2
a,b,c = 1,2 --print(a,b,c) //结果为1 2 nil
2.lua基本数据类型
LLau语言是一种动态类型语言,没有类型定义,每个值都带有自身的类型信息。
lua语言一共有八种基本数据类型:nil(空),Boolean(布尔),number(数值),string(字符串),userdata(用户数据),function(函数),thread(线程)和table(表)。使用函数type()可以获取对应的类型
B = "hello lua"
print (type (B))
--输出结果为 string
2.1nil类型
nil是一种只有nil值的类型,它的作用就是与其他所有值进行区分,Lua使用nil来表示无效值
2.2Boolean类型
Boolean类型中有false类型和ture两种,在Lua语言中,将除Boolean值false和nil外的所有其他值视为真,注意在条件检测中Lua语言会把零和空字符视为真
2.2.1逻辑运算and、or、not
and :如果第一个操作数为‘false’,则返回第一个操作数,否则返回第二个操作数
or : 如果第一个操作数不‘false’,则返回第一个操作数,否则返回第二个操作数
not : 输出布尔值类型相反
三目运算符 表达式:ret = a > b and a or b
print(4 and 5) --输出5
print(nil and 5) --输出nil
print(0 or 5) --输出0
print(nil or false) --输出false
2.3number类型
在c语言中有许多数值类型,但是在Lua中统称为number类型。
2.3.1十六进制表示方法,用0x开头表示
a = 0x22
print(a)
--输出结果为34
2.3.2科学计数法
a = 2e10
print(a)
--输出结果为 20000000000.0
2.3.3左移右移
a = 2
print(a<<1) --输出结果4
a = 32
print(a>>1) --输出结果16
2.3.4计算符号
+ 加号
- 减号
* 乘号
/ 除号 在Lua语言除号跟c语言不同,会保留小数
例:
print(32/5) --输出6.4
// 相除取整
例:
print(32/5) --输出6
2.4string类型
2.4.1创建字符串
有三种声明字符串的方法 :‘ ’、“ ”、[[ ]]
a = "hello"
b = 'hello\n lua'
c = [[hello
Lua
world
]]
运行结果:
2.4.2拼接字符串 ..
a = 'hello'
b = 'Lua'
c = a..b
print (c)
--输出结果 helloLua
2.4.3字符串转换
a = tostring(30)
b = tonumber("30")
c = tonumber("vhiuhso")
print(a) --输出结果字符串的 30
print(b) --输出number类型的 30
print(c) --输出nil
2.4.4获取字符串长度 #
a = "hello"
print(#a) --输出结果5
2.5userdata类型
这个没有学不会哈哈哈哈哈
2.6function类型
2.6.1定义函数
function :基本类型(这个是固定的语法)
function_name :用户定义函数的名称
end :函数结束(固定语法)
(. . .) : 可以传进去参数
--第一种声明方法,一般比较常用
function function_name( ... )
-- body
end
--第二种声明方法
function_name = function( ... )
-- body
end
2.6.2返回值
在Lua语言中支持单个或者多个返回值
function aaa( a,b )
return a,b
end
A,B = aaa(11,22)
print(A,B)
--输出结果 11,22
2.7thread类型
这个也不是很懂!!!
2.8table类型
在Lua语言中table有两种下表,一种是数字下标,一种是字符串下标
2.8.1数字下标与字符串下标
--数字下标
a = {1,"hello",{},function()end}
print(a[1])
print(a[2])
print(a[3])
print(a[4])
--注意:Lua数字下标起始为1
--[[输出结果为
1
hello
table: 0x154
function: 0x155
]]--
a[5] = 123 --将第五个元素赋值为123
#a --获取数组长度
table.insert(a,"d") --使用内部接口给a数组最后元素插入字符串d
table.insert(a,2,"Lua") --使用内部接口,将字符串Lua插到第一个元素后面
table.remove(a,2) --将数组第二个元素删除
--字符串下标
a = {
a = 1,
b = "hello",
c = function()
end,
d = 123123
}
print(a.a) --输出结果1
print(a["c"]) --输出结果 function: 0x154
a["f"] = 123 --添加数据
2.8.2全局变量表_G
所有全局变量都存放在_G这个table中
a = 123
print(_G["a"]) --输出结果 123
3.判断语句IF
3.1基本语法
在Lua语法中IF判断语句是没有大括号,小括号,具体格式如下所示
condition:判断语句
then:语法格式,紧接判断语句
--body:执行内容
end:IF语法结束
if condition then
-- body
else
--body
end
4.循环
4.1for循环
在for循环中是不允许更改条件的变量(例如下面代码中i),不能在循环内部更改i的值,如果强行赋值,系统不会报错,会在循环中创建一个局部变量i
break:跳出循环
continue:跳出本次循环
for i = 1,10 do --定义变量i初始值为1,到10循环结束,默认步长为1
print(i)
end
--[[输出结果为
1
2
3
4
5
6
7
8
9
10
]]--
for i = 1,10,2 do --定义变量i初始值为1,到10循环结束,设置步长为2
print(i)
end
--[[输出结果为
1
3
5
7
9
]]--
4.2while循环
while循环只需要传递判断语句,当满足条件时,继续循环,不满足条件时,结束循环
a = 10
while a>1 do
a =a-1;
print(a)
end
结束语:感谢大家的支持有什么不会的,不要问我,自寻百度,因为我也是刚会的!如果有错误请大家指出