当前位置:   article > 正文

unity---lua闭包_unity lua闭包

unity lua闭包

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))
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/449463
推荐阅读
相关标签
  

闽ICP备14008679号