lua教程(二) 循环、流程控制、函数和运算符
lua 循环
循环
while 循环
原型:
1 | |
for 循环
原型:
1 | |
repeat 循环
原型:
1 | |
和 while 循环不同,repeat 循环至少会执行一次循环体。
流程控制
break 语句
break 语句用于跳出当前循环。
goto 语句
goto 语句用于无条件跳转到指定标签处执行代码。标签的定义格式为 ::label::,可以在代码中使用 goto label 来跳转到该标签处执行代码。
可以使用 goto 语句实验类似于 continue 的功能,例如:
1 | |
只会打印数字 5,因为当 i 不等于 5 时,会跳过打印语句直接进入下一次循环。
流程控制
原型:
1 | |
函数
原型:
1 | |
可以在 function 前加 local 来定义局部函数。
lua 接受可变参数,可以使用 ... 来表示可变参数,在函数体内可以使用 {...} 来获取一个包含所有可变参数的表,或者使用 select 函数来获取特定位置的可变参数,例如 select(1, ...) 获取第一个可变参数,select(2, ...) 获取第二个可变参数,以此类推。select('#', ...) 可以获取可变参数的数量。
lua 可以返回多个值,例如:
1 | |
如果函数返回的值比接收的变量多,超出的部分会被丢弃;如果函数返回的值比接收的变量少,缺少的部分会被赋值为 nil,例如:
1 | |
lua 运算符
算术运算符
+, -, *, /, %, ^, //
其中 ^ 表示幂运算,// 表示整数除法。
关系运算符
==, ~=, <, >, <=, >=
逻辑运算符
and, or, not
三目运算:可以使用 and 和 or 来实现短路求值,例如:
1 | |
在这个例子中,a 是 true,所以 b 的值 是 “hello”;如果 a 是 false,那么 b 的值 就是 “world”。
其他运算符
.. 表示字符串连接运算符,例如:
1 | |
# 表示长度运算符,可以用于字符串和表格,例如:
1 | |
# 用的是 string.len 函数来计算字符串的长度,使用的是 table.maxn 函数来计算表格的长度。
1 | |