小编Aik*_*rum的帖子

在Lua中,使用和不使用"local"关键字声明的本地函数之间是否存在差异?

前言:据我所看到的,在网站上的文档真的不说这个了,我还没有发现任何人甚至这个问题,所以我敢肯定这两种形式是相同的,但我想知道如果有人知道肯定.

鉴于此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

我觉得我不能假设这一点.

lua scope

4
推荐指数
1
解决办法
1783
查看次数

标签 统计

lua ×1

scope ×1