6

この質問は単純に思えますが、Lua で関数を作成する 2 つの方法の違いを知りたいです。

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

またはこれを行う

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

2 に答える 2

4

違いは、マニュアルによると次のとおりです。

ステートメント

local function f () body end

に変換します

local f; f = function () body end

しない

local f = function () body end

(これは、関数の本体に f への参照が含まれている場合にのみ違いがあります。)

主な理由は、変数のスコープ (変数が表示される場所) が local ステートメントの後に開始され、関数が再帰的である場合、それ自体を参照するのではなく、名前が付けられた以前のローカルまたはグローバルを参照するためfです。

于 2013-06-28T06:31:45.950 に答える