Lua中命名函数与匿名函数有何本质区别?
- 内容介绍
- 文章标签
- 相关推荐
本文共计673个文字,预计阅读时间需要3分钟。
这些`myFuncs`之间主要的区别在于它们的定义方式和内部变量`someVariable`的初始化。
代码片段1:luafunction wrapper() local someVariable=0 function myFunc(n) if n <0 then return end return myFunc(n - 1) end return myFuncend在这段代码中,`someVariable`在`wrapper`函数中初始化为0,并在整个`wrapper`函数的调用期间保持不变。`myFunc`是局部定义的函数,当`wrapper`被调用时,会创建一个新的`myFunc`函数实例。
代码片段2:luafunction wrapper() local someVariable=0 local myFunc=function(n) if n <0 then return end return myFunc(n - 1) end return myFuncend在这段代码中,`someVariable`同样是初始化为0,并且只在`wrapper`函数的局部作用域中有效。`myFunc`也是一个局部定义的函数,其定义和执行与代码片段1相同。
两段代码的主要区别在于`myFunc`的调用和作用域管理。
本文共计673个文字,预计阅读时间需要3分钟。
这些`myFuncs`之间主要的区别在于它们的定义方式和内部变量`someVariable`的初始化。
代码片段1:luafunction wrapper() local someVariable=0 function myFunc(n) if n <0 then return end return myFunc(n - 1) end return myFuncend在这段代码中,`someVariable`在`wrapper`函数中初始化为0,并在整个`wrapper`函数的调用期间保持不变。`myFunc`是局部定义的函数,当`wrapper`被调用时,会创建一个新的`myFunc`函数实例。
代码片段2:luafunction wrapper() local someVariable=0 local myFunc=function(n) if n <0 then return end return myFunc(n - 1) end return myFuncend在这段代码中,`someVariable`同样是初始化为0,并且只在`wrapper`函数的局部作用域中有效。`myFunc`也是一个局部定义的函数,其定义和执行与代码片段1相同。
两段代码的主要区别在于`myFunc`的调用和作用域管理。

