【发布时间】:2011-12-29 19:59:00
【问题描述】:
我正在学习 Lua,并遇到了匿名函数的概念。这很有趣,但我想知道它比非匿名函数提供了哪些额外的优势。
所以如果我有类似的东西
function(a,b) return (a+b) end
函数是匿名的,如果我有
function add(a,b) return (a+b) end
该函数是非匿名的。第二个更好,因为我可以在任何我想要的地方调用它,而且我也知道我的函数在做什么。那么匿名函数有什么好处呢?我在这里遗漏了什么吗?
【问题讨论】:
-
你搞错了。一个更有用的心智模型是将
function f(...) ... end视为local f = function(...) ... end的语法糖,并将函数视为对象而不是程序的静态构建块。你不会问为什么你可以使用数字文字而不先给他们一个复杂的英文名字,是吗?
标签: function functional-programming lua anonymous-function