0%

Lua学习笔记

第一行代码

1
print("hello world")

注释

1
2
3
4
print("hello world") --单行注释
--[[
多行注释
]]

变量

1
2
3
year=2023
month='August'
print(year,month)

nil

nil类型表示没有任何有效值,只要是没有声明的值,它就是nil

1
2
3
ccc = 233
print(ccc)
print(aaa)

赋值

1
2
3
4
5
n = 2
n = 3
n = n + 1
n = 1
a, b = 10, 2*n

字符串

  1. 单引号间的一串字符

  2. 双引号间的一串字符

  3. [[和]]间的一串字符

1
2
print("hello")
print([[world]])

string拼接

..来表示字符串拼接符号

1
print("hello "..[[world]])

number转string

1
2
3
4
5
n = 123
s = 'm/s'

result = tostring(n)..s
print(result)

string转number

1
2
3
4
n = 123
s = '2333'

result = tonumber(s) + n

逻辑运算

符号 含义
== 等于,检测两个值是否相等,相等返回 true,否则返回 false
~= 不等于,检测两个值是否相等,相等返回 false,否则返回 true
> 大于,如果左边的值大于右边的值,返回 true,否则返回 false
< 小于,如果左边的值大于右边的值,返回 false,否则返回 true
>= 大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false
<= 小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false
符号 含义
and 逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B
or 逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B
not 逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false

分支判断

条件判断

1
2
3
if 条件 then
符合条件的代码
end

多条件判断

1
2
3
4
5
6
7
if 条件1 then
满足条件1
elseif 条件2 then
不满足条件1,但是满足条件2
else
前面条件全都不满足
end

函数

1
2
3
4
function 函数名(参数1,参数2,...)
代码内容
return a
endnd

local变量

使用local创建一个局部变量,与全局变量不同,局部变量只在被声明的那个代码块内有效。

1
2
3
4
5
6
7
a = 123
function add()
local n = a+2
print(n)
end
add()
print(n)

table

1
t = {1,3,8,5,4}

在上面的table变量t中,第一个元素的下标是1,第二个是2,以此类推。

1
2
print(t[1]) --打印1
print(t[3]) --打印
1
2
3
4
5
6
7
8
9
10
t = {
function() return 123 end,
function() print("abc") end,
function(a,b) return a+b end,
function() print("hello world") end,
}
t[1]()
t[2]()
t[3]()
t[4]()

table中可以包括任意类型的数据

1
2
3
4
5
6
7
--可以跳过某些下标
t = {
[1] = 6,
[3] = 7,
[5] = 8,
[7] = 9,
}
1
2
3
4
5
6
7
 t = {
["apple"] = 10,
banana = 12,
pear = 6
}
print(t["apple"])
print(t.apple)

table.concat

1
table.concat (table [, sep [, i [, j ] ] ])

将元素是string或者number类型的table,每个元素连接起来变成字符串并返回。

可选参数sep,表示连接间隔符,默认为空。

ij表示元素起始和结束的下标

1
2
3
local a = {1, 3, 5, "hello" }
print(table.concat(a))
print(table.concat(a, "|"))

table删减

1
2
table.insert (table, [pos ,] value)
table.remove (table [, pos])

循环

while循环

1
2
3
while 继续循环判断依据 do
执行的代码
end

for循环

1
2
3
for 临时变量名=开始值,结束值,步长 do
循环的代码
end

其中,步长可以省略,默认为1