gpt4 book ai didi

lua - 本地函数 myFunction 和本地 myFunction = function() 有什么区别

转载 作者:行者123 更新时间:2023-12-04 14:02:05 26 4
gpt4 key购买 nike

我知道这个问题看起来很简单,但我想知道在 Lua 中创建函数的两种方式之间的区别:

local myFunction = function()
--code code code
end

或者这样做
local function myFunction()
--code code code
end

最佳答案

如果函数是递归的,就会发生差异。在第一种情况下,“函数”名称尚未在函数体内的作用域内,因此任何递归调用实际上是指在定义局部变量之前作用域内的“myFunction”版本(大多数情况下,这意味着一个空的全局变量)。

fac = "oldvalue"
local fac = function()
print(fac) --prints a string
end

为了能够使用赋值模式编写递归函数,您可以做的一件事是预先声明变量:
local myFunction
myFunction = function()
-- ...
end

预先声明变量也恰好是定义一对相互递归的局部函数的唯一方法:
local even, odd    
even = function(n) if n == 0 then return true else return odd(n-1) end end
odd = function(n) if n == 0 then return false else return even(n-1) end end

关于lua - 本地函数 myFunction 和本地 myFunction = function() 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17352359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com