unity---lua闭包

3 篇文章 0 订阅

lua中存在一种方法叫闭包它与lua元表有写相似处,有兴趣可以看一下我之前发布的文章lua元表
首先,我们要清楚lua闭包的定义方法,首先看下面的一个函数方法。

print("**********函数嵌套************")
function F8()
	return function()
		print(123);
	end
end
f9 = F8()
f9()

--闭包
function F9(x)
	--改变传入参数的生命周期
	return function(y)
		return x + y
	end
end

f10 = F9(10)
print(f10(5))

上面就是lua的一个嵌套函数中的一个闭包方法。f10 = F9(10),这个方法首先将F9中的闭包函数定义了一个变量将值存储为10,然后在下面调用了一个方法f10(5)又调用了闭包函数使F9中的闭包函数由上一个方法中的值(10)加上当前调用的参数5最后输出的值为15,这个方法就说明了lua的闭包会将参数留在函数中,多次调用闭包不会开辟新的空间,下面这个截图是一个方法输出值。
在这里插入图片描述
当然闭包也会有缺点,就是不会触发gc垃圾回收,因为它这个值一直存在,所以gc的垃圾回收不会触发,闭包的优点是节省所需要的时间,就是因为它不会开辟新的空间,但这个也是它所对应的一个缺点。对于项目中使用闭包要在合理的地方使用。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐·風

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值