函数定义
optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)function_bodyreturn result_params_comma_separatedend
| 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 thenreturn aelsereturn bendendprint(max(3,5))print(max(1.2,3.6))
调用函数
53.6
Lua 中我们可以将函数作为参数传递给函数
function add(a, b)return a + bendfunction minus(a, b)return a - bendfunction operation(a, b, func)return func(a, b)endprint(operation(1, 2, add))print(operation(5, 1, minus))
打印结果
34
可变参数
在函数参数列表中使用三点 … 表示函数有可变的参数。
function foo(...)local arg = { ... }sum = 0for k, v in pairs(arg) dosum = sum + vendreturn sumendprint(foo())print(foo(2))print(foo(1,3,5))
打印结果
029
