Lua函数
函数的作用:
1. 完成指定的任务,这种情况下函数作为调用语句使用;
2. 计算并返回值,这种情况下函数作为赋值语句的表达式使用
函数定义格式
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
function_body
return result_params_comma_separated
end
optional_function_scope: 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local。
function_name: 指定函数名称。
argument1, argument2, argument3…, argumentn: 函数参数,多个参数以逗号隔开,函数也可以不带参数。
function_body: 函数体,函数中需要执行的代码语句块。
result_params_comma_separated: 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开。
可变参数
Lua函数可以接受可变数目的参数,和C语言类似在函数参数列表中使用三点(…) 表示函数有可变的参数。
Lua将函数的参数放在一个叫arg的表中,#arg 表示传入参数的个数。
例如,我们计算几个数的平均值:
function average(...)
result = 0
local arg={...}
for i,v in ipairs(arg) do
result = result + v
end
print("总共传入 " .. #arg .. " 个数")
return result/#arg
end
print("平均值为",average(10,5,3,4,5,6))
结果:
总共传入 6 个数
平均值为 5.5
运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算。Lua提供了以下几种运算符类型:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 其他运算符
算术运算符
a = 10
b = 20
操作符 | 描述 | 表达式 | 结果 |
---|---|---|---|
+ | 加法 | A + B | 结果 30 |
- | 减法 | A - B | 结果 -10 |
* | 乘法 | A * B | 结果 200 |
/ | 除法 | B / A | 结果 2 |
% | 取余 | B % A | 结果 0 |
^ | 乘幂 | A ^ 2 | 结果 100 |
- | 负号 | -A | 结果 -10 |
关系运算符
操作符 | 描述 | 表达式 | 结果 |
---|---|---|---|
== | 等于 | A == B | false |
~= | 不等于 | A -= B | true |
> | 大于 | A > B | false |
< | 小于 | B < A | true |
‘>=’ | 大于等于 | B >= A | true |
<= | 小于等于 | A <= B | true |
(因为 >在 md中有引用的效果 所以 >= 加了个单引号 实则不用)
逻辑运算符
操作符 | 描述 | 表达式 | 结果 |
---|---|---|---|
and | 与 | A and B | false |
or | 或 | A or B | true |
not | 非 | not(A and B) | true |
其他运算符
操作符 | 描述 | 表达式 | 结果 |
---|---|---|---|
.. | 连接两个字符串 | a..b ,其中 a 为 “Hello ” , b 为 “World”, | Hello World |
# | 一元运算符,返回字符串或表的长度 | “Hello” | 5 |
运算符优先级
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or