文章针对于有一定编程基础编写,同时语法跟python相似,需要注意空格,换行。

注意:

1.lua语言不支持自加自减操作

1.快速上手编译环境

Lua语言是一种轻量级语言,在浏览器中即可快速上手体验,点击下方链接即可跳转。

🕹 在线体验LuatOS - LuatOS 文档

变量

1.1变量声明
a = 123
1.2声明局部变量

在lua里面声明的变量默认为全局变量(在别的文件也可以访问),如果想创建局部变量加上local

local a= 123
1.3未声明的变量

在lua中,如果没有声明变量,那么返回值都是nil类型(空,相当于c语言NUll)。

print(x) --因为x没有声明打印出来为空




lua变量声明 lua支持中文变量_lua变量声明


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
]]

运行结果:


lua变量声明 lua支持中文变量_lua变量声明_02


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

结束语:感谢大家的支持有什么不会的,不要问我,自寻百度,因为我也是刚会的!如果有错误请大家指出