当前位置: 首页 > 知识库问答 >
问题:

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

宗政才俊
2023-03-14
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

共有1个答案

阎修杰
2023-03-14

从逻辑上讲,您不能像这样returnbreak

return立即退出函数(因此不需要break)。

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

 类似资料:
  • 问题内容: 在这段代码中,为什么不按我的意愿初始化我的数组?是不是for-each循环并非旨在做到这一点,或者我只是没有正确使用它? 问题答案: for-each循环不适用于这种情况。您不能使用for-each循环来初始化数组。您的代码: 将转换为以下内容: 如果这是一个对象数组,它仍然会失败。基本上,for-each依次将集合或数组中的每个条目分配给您提供的变量,然后可以使用该变量。该变量 不

  • 似乎“for in”循环隐式调用函数迭代器,参数状态为:i(s) 任何人都能告诉我,发生了什么?

  • 编辑:为什么在局部变量上这么快?(~16秒进行相同的迭代,但对函数内部的局部变量进行迭代)

  • 我试图在for循环中获得for循环,因此输出如下: 我希望输出显示一个正方形 我不知道它为什么不这样做。下面是我的代码:

  • 问题内容: 这有效: 但是,这不是: 在第二个示例中,数组未添加到自身。 问题答案: 是的,不是 您所做的可能也是有效的代码,但是现在您正在做 它适用于数字类型(我假设您有)。没有数组索引的简化示例: 样品: 输出: -5 -5 5 5 为了清晰起见,从评论中复制: 您基本上是在说。在这种情况下,仅需指示它是一个正整数即可。这是有效的代码,但这不是您想要的。

  • 我想在一个并行外部循环中运行一个包含for循环(应该并行运行)的函数。因此看起来如下所示: 给定上面的代码,我希望在函数中为循环创建5个并行线程,并且希望这5个线程中的每个线程创建另一个线程来运行自己的并行for循环。