函数定义
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
function_body
return result_params_comma_separated
end
optional_function_scope | 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local |
function | 函数定义关键字 |
function_name: | 指定函数名称。 |
argument1, argument2, argument3…, argumentn | 函数参数,多个参数以逗号隔开,函数也可以不带参数。 |
function_body | 函数体,函数中需要执行的代码语句块 |
result_params_comma_separated | 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开 |
end | 函数定义结束关键字 |
函数返回两个值的最大值
function max(a, b)
if a > b then
return a
else
return b
end
end
print(max(3,5))
print(max(1.2,3.6))
调用函数
5
3.6
Lua 中我们可以将函数作为参数传递给函数
function add(a, b)
return a + b
end
function minus(a, b)
return a - b
end
function operation(a, b, func)
return func(a, b)
end
print(operation(1, 2, add))
print(operation(5, 1, minus))
打印结果
3
4
可变参数
在函数参数列表中使用三点 … 表示函数有可变的参数。
function foo(...)
local arg = { ... }
sum = 0
for k, v in pairs(arg) do
sum = sum + v
end
return sum
end
print(foo())
print(foo(2))
print(foo(1,3,5))
打印结果
0
2
9