1.函数的格式
function function_name()
end
或者
a=function()
end
函数声明之前,不能调用----与C#不同的是,C#在new的时候,就编译好了,就可以随时调用;lua要先声明,在调用
从第二种可以看出,func是一种变量类型。有点类似与c#中的委托和事件的写法
2.有参数的函数格式----多传了参数会丢弃,少传了参数会补空
function function_name(arg)
print(a)
end
注意arg是不指定变量类型的。注意的是,在使用参数的时候,有些类型不能做的操作,就会报错,如调用的时候,传进去true,使用…就会报错。
如果调用的时候纯进去的参数,和函数的个数不匹配,只会补空nil----不传进去参数或者丢弃----多传
3.返回值----当接收的变量,少于返回出来的变量的时候,会丢弃;当接收的变量,多于返回出来的变量的时候,会补空;
function function_name(arg)
return arg
end
只需要在调用的时候,外部使用变量来接取即可。
当函数有多返回值的时候,前面声明多个变量来接取即可
如果变量不够,不影响,变量会给对应的位置的返回值
如果变量超了,超的变量会取得nil值
4.函数的类型type(function_name),得到的是function
5.函数的重载
lua是不支持,函数重载
如果有两个函数名字相同的函数,会默认调用,最后一个声明的函数
编译器认为的只是改变了函数的赋值而已
6.变长参数----可变参数,使用的时候,先使用一个表,来存储参数,不限制参数类型
function function_name(...)
arg={
...}
for i=1,#arg do