【发布时间】:2017-12-26 09:22:10
【问题描述】:
我不明白为什么会这样。 我正在使用 Moonsharp 在我的应用程序中运行 LUA 脚本,我创建了一个 LUA 函数 IN(v, ...) 并且我想用对迭代 ... 参数。
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
如果它被调用,我会收到以下异常:
“MoonSharp.Interpreter.ScriptRuntimeException” 'next' 的错误参数 #1(预期的表,得到字符串)
所以我决定检查我的 ... 变量中是否有一个字符串而不是一个表。
function args(v, ...)
return ...
end
C# 中的返回值是一个包含 'param2' 和 'param1' 的 2 个值的元组,所以它应该适用于对或 ipairs,不是吗?
提前致谢。
【问题讨论】:
-
pairs在一张桌子上操作,也许你的意思是local args = {...}