Lua 语法之函数

函数的定义

--函数的定义
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))
posted @   BaiLuoXi  阅读(9)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
点击右上角即可分享
微信分享提示