函数定义

  1. optional_function_scope function function_name( argument1, argument2, argument3..., argumentn)
  2. function_body
  3. return result_params_comma_separated
  4. end
optional_function_scope 该参数是可选的制定函数是全局函数还是局部函数,未设置该参数默认为全局函数,如果你需要设置函数为局部函数需要使用关键字 local
function 函数定义关键字
function_name: 指定函数名称。
argument1, argument2, argument3…, argumentn 函数参数,多个参数以逗号隔开,函数也可以不带参数。
function_body 函数体,函数中需要执行的代码语句块
result_params_comma_separated 函数返回值,Lua语言函数可以返回多个值,每个值以逗号隔开
end 函数定义结束关键字

函数返回两个值的最大值

  1. function max(a, b)
  2. if a > b then
  3. return a
  4. else
  5. return b
  6. end
  7. end
  8. print(max(3,5))
  9. print(max(1.2,3.6))

调用函数

  1. 5
  2. 3.6

Lua 中我们可以将函数作为参数传递给函数

  1. function add(a, b)
  2. return a + b
  3. end
  4. function minus(a, b)
  5. return a - b
  6. end
  7. function operation(a, b, func)
  8. return func(a, b)
  9. end
  10. print(operation(1, 2, add))
  11. print(operation(5, 1, minus))

打印结果

  1. 3
  2. 4

可变参数

在函数参数列表中使用三点 … 表示函数有可变的参数。

  1. function foo(...)
  2. local arg = { ... }
  3. sum = 0
  4. for k, v in pairs(arg) do
  5. sum = sum + v
  6. end
  7. return sum
  8. end
  9. print(foo())
  10. print(foo(2))
  11. print(foo(1,3,5))

打印结果

  1. 0
  2. 2
  3. 9