私はこれがどうして起こっているのか分かりません。 私はアプリケーションでLUAスクリプトを実行するためにMoonsharpを使用しています。私はLUA関数を作成しました(v、...)ので、...パラメータを繰り返し使用したいと思います。 '次へ' をムーンシャープペア(...)は、例外「悪い引数#1を次の(テーブルが期待され、文字列を取得しました)」に変換します。 "
:"MoonSharp.Interpreter.ScriptRuntimeException" 悪い引数#1(表が期待される、文字列を得た)
IN('param1', 'param2', 'param1') -- expected it to return true
function IN(v, ...)
local args = ...
local res = true
for i, v in pairs(args) do
if valueIn == v then
res = true
break
end
end
return res
end
それは、私はfolowing例外を受け取る呼び出された場合
だから、私の...変数にテーブルの代わりに文字列があるかどうかをチェックすることにしました。
function args(v, ...)
return ...
end
C#で戻り値が「PARAM2」と「PARAM1」との2つの値のタプルであり、それはペアまたはipairsで動作する必要があり、それはいけませんか?
ありがとうございます。あなたの例のように、この定義を使用して
'pairs'はテーブル上で動作します。おそらく、' local args = {...} 'を意味します。 – Adam