函数的定义
--函数的定义
function 函数名()
end
a =function()
end
无参数无返回值函数
function F1()
print("F1函数")
end
-- Lua 执行 是自上往下 执行 函数不同于变量 ,
--执行函数时必须先定义且在执行函数上面有定义
F1()
--有点类似 C# 中的委托和事件 写法
F2 =function()
print("F2函数")
end
F2()
有参数函数
function F3( a )
print("参数:" , a)
-- body
end
F3 (1);
F3 ("123");
F3 (true);
-- 如果你传入从参数 和函数参数个数不匹配
--不会报错 只会补空 或者 丢弃
F3 ();
F3( 1,2,3 )
有返回值函数
function F4(a)
-- body
return a,"123",true
end
--多返回值时 在前面申明多个变量来接取即可
--如果变量不够 不影响 值接取对应位置的返回值
--如果变量多了 不影响 直接赋nil 空类型
temp,temp2,temp3 =F4("1")
print(temp)
print(temp2)
print(temp3)
函数的类型
函数类型 就是 function
F5=function()
print("123")
end
print(type (F5))
函数的重载
函数名相同 参数类型不同 或者参数个数不同
Lua 中函数不支持重载 默认调用最后一个申明的函数
function F6()
print ("洛溪帅气")
end
function F6(str)
print (str)
end
F6()
变长参数
... 再函数里代表着 任意数量的参数
{...} 表存储数据
function F7( ... )
arg = {...}
for i=1,#arg do
print(arg[i])
end
end
F7(1,"洛溪",3,true,5,6,7);
函数嵌套
function F8()
return function ()
print(123);
end
end
f9=F8()
f9()
闭包简单体现
function F9( x )
--改变了传入参数的生命周期
return function(y)
return x+y;
end
-- body
end
F10 =F9( 20 )
print(F10(10))
标签:function,F3,end,函数,--,语法,Lua,print
From: https://www.cnblogs.com/Luo-Xi/p/18324164