-- 方式一
function 函数名()
-- 函数体
end
-- 方式二
-- 类似于C#中的委托和事件
函数名 = function()
-- 函数体
end
形式参数
如果调用函数传入参数和形参列表不匹配
程序不会报错,会进行补空(nil) 或者丢弃
多返回值
多返回值时,在前面声明多个变量接收即可
- 返回值不够,只接取对应位置
- 返回值多了,补空丢弃,赋值为nil
函数重载
不支持函数重载,默认调用最后一个声明的函数
变长参数
变长参数,用一个表存起来再用function fun(...)
args = {...}
end
函数嵌套
返回函数
function fun()
return function()
print(123)
end
end
闭包
改变传入参数的生命周期-- 闭包
function fun(x)
-- 改变传入参数的生命周期
return function(y)
return x + y
end
end
f = fun(10)
print(f(5))
output:
15