为什么if then return break end在Lua内部for循环中不起作用

为什么if then return break end在Lua内部for循环中不起作用,lua,Lua,我有下面的函数,它检查给定的参数是否作为键值表中的键找到。如果是这种情况,它应该返回true并中断循环。如果什么也没找到,那就什么也不做 function checkId(id) for k,v in pairs(info) do if id == tostring(k) then return true break -- break out of loop. mission accomplished. end end end 我得到一份工作 预

我有下面的函数,它检查给定的参数是否作为键值表中的键找到。如果是这种情况,它应该返回
true
并中断循环。如果什么也没找到,那就什么也不做

function checkId(id)
  for k,v in pairs(info) do
    if id == tostring(k) then
      return true
      break -- break out of loop. mission accomplished.
    end
  end
end
我得到一份工作

预计在“中断”附近“结束”(在第192行关闭“do”)


当我尝试运行此脚本时。我遗漏了什么?

从逻辑上讲,你不能像那样
返回
中断

return
立即退出该函数(因此您不需要
中断


该特定错误是因为在lua中,return必须是块中的最后一条语句。

从逻辑上讲,您不能像这样返回和中断

return
立即退出该函数(因此您不需要
中断


该特定错误是因为在lua中,return
必须是块中的最后一条语句。

您不能
return
break
<代码>返回
退出该功能。在Lua5.1中,return必须是块中的最后一条语句。在这种情况下,您建议怎么做?如果条件满足,我需要这个函数返回一些东西。哈,我真是太蠢了。谢谢,它现在工作得很好。您不能
返回
中断
<代码>返回
退出该功能。在Lua5.1中,return必须是块中的最后一条语句。在这种情况下,您建议怎么做?如果条件满足,我需要这个函数返回一些东西。哈,我真是太蠢了。谢谢,它现在工作得很好。
return
必须是最近每个Lua版本中块中的最后一条语句。是
break
解除了这个限制,因为它无论如何都不能接受参数。@siffiejoe-Huh,的确如此。我想知道我当时对wrt
return
有什么想法。谢谢。
return
必须是每个最新Lua版本中块中的最后一条语句。是
break
解除了这个限制,因为它无论如何都不能接受参数。@siffiejoe-Huh,的确如此。我想知道我当时对wrt
return
有什么想法。谢谢