佚名通过本文主要向大家介绍了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
这句报错。

