Lua中本地函数myFunction与myFunction = function()的区别是什么?
- 内容介绍
- 文章标签
- 相关推荐
本文共计447个文字,预计阅读时间需要2分钟。
在Lua中创建函数有几种常见的方法,以下是对两种主要方法的简单区分:
1. 使用`local myFunction=function()`语法: - 这种方法定义了一个局部函数,它只能在其所在的作用域内被调用。 - 示例代码: lua local myFunction=function() -- code -- code -- code end
2. 使用`local function myFunction()`语法: - 这种方法同样定义了一个局部函数,但语法上更清晰,易于阅读。 - 示例代码: lua local function myFunction() -- code -- code -- code end
两者在功能上没有本质区别,主要在于代码的可读性和个人偏好。第一种方法更为紧凑,第二种方法在阅读时更直观。
我知道这个问题看起来很简单,但我想知道在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
本文共计447个文字,预计阅读时间需要2分钟。
在Lua中创建函数有几种常见的方法,以下是对两种主要方法的简单区分:
1. 使用`local myFunction=function()`语法: - 这种方法定义了一个局部函数,它只能在其所在的作用域内被调用。 - 示例代码: lua local myFunction=function() -- code -- code -- code end
2. 使用`local function myFunction()`语法: - 这种方法同样定义了一个局部函数,但语法上更清晰,易于阅读。 - 示例代码: lua local function myFunction() -- code -- code -- code end
两者在功能上没有本质区别,主要在于代码的可读性和个人偏好。第一种方法更为紧凑,第二种方法在阅读时更直观。
我知道这个问题看起来很简单,但我想知道在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

