2

関数の本体を文字列から (C api を使用して) ロードしますが、デフォルトでは、関数に渡されるすべての引数は.... 引数リストを指定する最良の方法は何ですか? 文字列を解析する前に、次のような行を文字列の先頭に追加することしか考えられません (引数は、self、x、y である必要があると仮定します)。

local self, x, y = ...

ただし、これが最善の方法であるかどうか、または意図しない副作用があるかどうかはわかりません。

更新: 関数の 1 つで、形式の引数リストが必要self, type, ...です。以下はうまくいきませんよね?

local self, type, ... = ...

代わりにこれを使用する必要がありますか?

text = "return function(self, type, ...)" + text + " end";
luaL_loadbufferx(L, text, text.length(), filename, "t");
lua_call(L, 0, 1);
4

1 に答える 1

3

その行を先頭に追加することは、名前付き引数を作成するための優れた方法です。ローカル宣言をそのまま使用すると、副作用はありません (コードの残りの部分からのものを除く)。

于 2013-04-05T21:00:21.683 に答える