LUA中的闭包(closure)浅析
之前对closure一知半解,在网上也找不到一篇文章能把它说清楚,今天好像第一次对它有点清晰的了解了,写个BLOG记念一下
lua的函数是一种First-ClassValue的东西,到底是啥?
就是它们与传统类型的变值没啥区别,
可以存到一个变量中,
可以存到table中,
可以作为实参传递给其它函数,
可以作为其它函数的返回值.
它们还具有特定的词法域(LexicalScoping),也就是说,一个函数可以嵌套在另一个函数中,内部的函数可以访问外部函数中的变量.
如下面的例子:
functiontest(x) returnfunction(value) returnvalue*x end end
func=test(10)
print(func(11))