变量

变量的默认值均为 nil。

Lua 变量有三种类型:

  • 全局变量
  • 局部变量
  • 表中的域。

Lua 中的变量全是 全局变量

local 显式声明为 局部变量

局部变量的作用域为:从声明位置开始到所在语句块结束。

1
2
3
4
5
6
7
a = 5               -- 全局变量
local b = 5 -- 脚本局部变量

function joke()
c = 5 -- 全局变量
local d = 6 -- 函数局部变量
end

循环

while循环

1
2
3
4
while(condition)
do
statements
end

for循环

  1. 数值for循环
1
2
3
for var=exp1,exp2,exp3 do  
<执行体>
end
  1. 泛型for循环
1
2
3
4
5
a = {"one", "two", "three"}

for i, v in ipairs(a) do
print(i, v)
end

repeat…until循环

1
2
3
repeat
statements
until( condition ) --(condition)为 true 才会停止执行

分支

if

1
2
3
4
if(布尔表达式)
then
--[ 在布尔表达式为 true 时执行的语句 --]
end

if..else

1
2
3
4
5
6
if(布尔表达式)
then
--[ 布尔表达式为 true 时执行该语句块 --]
else
--[ 布尔表达式为 false 时执行该语句块 --]
end

运算符

算数运算符

+ 加法 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