佚名通过本文主要向大家介绍了lua多个返回值,lua返回值,lua基础print a 返回,lua 函数返回值,lua pcall 返回值等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:Lua 尝试返回多个值,attempt to compare nil with number
描述:
解决方案1:
描述:
--[[
s,e=string.find("hello Lua users","Lua")
print(s,e)
--]]
function maximum (a)
local mi = l
local m = a[mi]
for i,val in ipairs(a) do
if val > m then
mi = i
m = val
end
end
return m,mi
end
print(maximum({8,10,23,12,5}))
报错:Exception in thread "main" com.naef.jnlua.LuaRuntimeException: ...\ldt\workspace\test\src\5.1return multiple value.lua:10: attempt to compare nil with number
at com.naef.jnlua.LuaState.lua_pcall(Native Method)
at com.naef.jnlua.LuaState.call(LuaState.java:555)
at org.eclipse.koneki.ldt.support.lua51.internal.interpreter.JNLua51Launcher.run(JNLua51Launcher.java:128)
at org.eclipse.koneki.ldt.support.lua51.internal.interpreter.JNLua51Launcher.main(JNLua51Launcher.java:143)
解决方案1:
如果我没看错的话,题主你写的程序的第四行是mi = l而不是mi = 1吧,把l改成1就好了吧…
解决方案2:local mi = l
这个 l 是哪来的? l是空值
因此你的下一句
local m = a[mi]
导致m为nil值。
变量只能同类型比较
因此会使得
if val > m then
这句报错。