2

OK、これを検索しましたが、役に立ちませんでした。それは漠然とした考え/アイデアなので...ここに行きます。

Lua で、(宣言された値を使用して) 関数を呼び出してから、(値を再度渡すことなく) 参照によって再度呼び出すことは可能ですか?

私がやろうとしているのは、ジェネリック関数が呼び出されたときに渡された値が宣言された、より大きなジェネリック関数 (繰り返し使用される) を作成することです。

ジェネリック関数が失敗した場合は、リサイクルして同じ使用値で自分自身を呼び出そうとします (それらを関数に再度渡す必要はありません)。

私が誰も失っていなければ、うまくいけばそこにいくつかの考えやアイデアがあります. ティム

4

1 に答える 1

4

関数に引数を渡したい場合は、毎回渡す必要があります。

クロージャーを介していくつかの引数を関数にバインドできます。

function bind(f, ...)
    local args = {...}
    return function()
        return f(unpack(args))
    end
end

foo = bind(print, "This", "is", "a", "test")
foo() --> This    is      a       test
foo() --> This    is      a       test

サンプルコードを投稿すると、質問に答えるのがずっと簡単になります。

于 2012-08-15T22:05:53.570 に答える