第一行代码
注释
变量
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
| 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 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
在上面的table
变量t
中,第一个元素的下标是1
,第二个是2
,以此类推。
1 2
| print(t[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
,表示连接间隔符,默认为空。
i
和j
表示元素起始和结束的下标
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