课程链接
注释
--注释内容
输出
声明变量
声明的变量默认是全局变量
局部变量的声明方式
未被声明的变量为nil
多重赋值
1 2 3
| a,b,c = 1,2
print(a,b,c)
|
输出结果
number 数值型
十六进制的表示方法(17)
科学计数法的表示方法(20000000000.0)
布尔型
true
false
算数运算符
操作符 |
描述 |
实例 |
+ |
加法 |
A + B 输出结果 30 |
- |
减法 |
A - B 输出结果 -10 |
* |
乘法 |
A * B 输出结果 200 |
/ |
除法 |
B / A 输出结果 2 |
% |
取余 |
B % A 输出结果 0 |
^ |
乘幂 |
A^2 输出结果 100 |
- |
负号 |
-A 输出结果 -10 |
// |
整除运算符(>=lua5.3) |
5//2 输出结果 2 |
关系运算符
操作符 |
描述 |
实例 |
== |
等于,检测两个值是否相等,相等返回 true,否则返回 false |
(A == B) 为 false。 |
~= |
不等于,检测两个值是否相等,不相等返回 true,否则返回 false |
(A ~= B) 为 true。 |
> |
大于,如果左边的值大于右边的值,返回 true,否则返回 false |
(A > B) 为 false。 |
< |
小于,如果左边的值大于右边的值,返回 false,否则返回 true |
(A < B) 为 true。 |
>= |
大于等于,如果左边的值大于等于右边的值,返回 true,否则返回 false |
(A >= B) 返回 false。 |
<= |
小于等于, 如果左边的值小于等于右边的值,返回 true,否则返回 false |
(A <= B) 返回 true。 |
逻辑运算符
操作符 |
描述 |
实例 |
and |
逻辑与操作符。 若 A 为 false,则返回 A,否则返回 B。 |
(A and B) 为 false。 |
or |
逻辑或操作符。 若 A 为 true,则返回 A,否则返回 B。 |
(A or B) 为 true。 |
not |
逻辑非操作符。与逻辑运算结果相反,如果条件为 true,逻辑非为 false。 |
not(A and B) 为 true。 |
其他运算符
操作符 |
描述 |
实例 |
.. |
连接两个字符串 |
a..b ,其中 a 为 “Hello “ , b 为 “World”, 输出结果为 “Hello World”。 |
# |
一元运算符,返回字符串或表的长度。 |
#”Hello” 返回 5 |
运算符优先级
从高到低的顺序:
1 2 3 4 5 6 7 8
| ^ not - (unary) * / % + - .. < > <= >= ~= == and or
|
除了 ^ 和 .. 外所有的二元运算符都是左连接的。
1 2 3 4 5
| a+i < b/2+1 <--> (a+i) < ((b/2)+1) 5+x^2*8 <--> 5+((x^2)*8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z)
|
string 字符串
1 2 3 4 5 6 7 8 9 10 11
| a = "string" b = 'string' c = "string\n" d = [[qfa;env cadvav avavaev ]] print(a) print(b) print(c) print(d)
|
输出结果
1 2 3 4 5 6 7 8 9 10
| string string string
qfa;env cadvav avavaev
|
字符串的连接 ..
输出结果
数字与字符串间的转化
数字转字符串tostring()
字符串转数字tonumber()
字符串长度
1 2
| a = "123456789" print(#a)
|
输出结果
函数
1 2 3 4
| function function_name(para1,para2,...) return a end
|
或者
1 2 3 4
| function_name = function(para1,para2,...) return a end
|
调用函数
1
| function_name(para1,para2,...)
|
可以有多个返回值
1 2 3 4 5
| function f(a, b) return a, b end
print(f(1,2))
|
输出结果
多个返回值可以配合多重赋值语句
1 2 3 4 5 6 7 8
| function f(a,b) return a,b end
local i,j = f(1,2)
print(i) print(j)
|
输出结果
数组
可以存储数字,字符串,table,function.用逗号分隔.
table 数字下标
声明方式
1
| a = {1,"a",{},function() end}
|
第一个元素的下标是1而不是0
调用方式
输出结果
赋值操作
输出结果
获取长度
输出结果
插入(将元素"d"
插入到数组a
的第3
个位置)
移除(将数组a
的第3
个元素"d"
移除)
该操作会返回被移除的值
1 2
| r = table.remove(a,3) print (r)
|
输出结果
table 字符串下标
1 2 3 4 5 6 7
| a = { a = 1, b = "abc", c = function()
end }
|
调用方式
要将字符串下标用双引号""
括起来
输出结果
如果下标符合变量命名规范的话还能这样调用
输出结果
如果下标不符合变量命名规范的话要这样
1 2 3 4
| b = { [","] = 123 } print(b[","])
|
输出结果
全局表 _G
_G
一个特殊的table,包含所有全局变量
输出结果
真假判断
1 2 3 4
| a = nil b = 0
print(b > 10 and "yes" or "no")
|
输出结果
判断
1 2 3 4 5 6 7
| if 1>10 then print("1>10") elseif 1<10 then print("1<10") else print("no") end
|
输出结果
循环
for
1 2 3
| for i=1,10 do print(i) end
|
输出结果
可以修改步长
1 2 3
| for i=1,10,2 do print(i) end
|
输出结果
步长也可以为负数
1 2 3
| for i=10,1,-1 do print(i) end
|
输出结果
跳出循环break
while
1 2 3 4 5
| local i = 10 while i > 1 do print(i) i = i - 1 end
|
Lua不支持自增自减操作!!!
输出结果