前言:据我所看到的,在网站上的文档真的不说这个了,我还没有发现任何人甚至问这个问题,所以我敢肯定这两种形式是相同的,但我想知道如果有人知道肯定.
鉴于此Lua代码:
function f()
function a() ... end
local function b() ... end
...
end
Run Code Online (Sandbox Code Playgroud)
有没有之间的功能差异a()和b()?我说的是性能,访问,警告,任何事情.最后,他们在运行时是否都具有完全相同的底层表示?
我怀疑没有任何区别,但我不确定,这让我感到困扰.我知道a()它的范围是封闭的函数f(),但是我不确定它是否真的使它成为一个局部变量,就如何在底层运行.有b(),我可以肯定.
我们从官方文档中知道,我对b()上面的定义是语法糖:
local b
b = function() ... end
Run Code Online (Sandbox Code Playgroud)
我很想相信,即使没有我的定义中的local关键字,最终的去糖定义也将遵循该格式,包括该部分.a()local a
我觉得我不能假设这一点.