lua提示bad argument #1 to ‘for iterator‘ (table expected, got nil)

叁歲伎倆 2022-10-05 01:50 210阅读 0赞

这个报错是因为在使用for迭代器时,传递给迭代器的参数不正确所导致的
例如下面的程序复原了该错误

  1. local Set = { }
  2. function Set:tostring(set)
  3. local l = { }
  4. for e,k in pairs(set) do -- 由于这里接收到的是一个nil值,无法对nil值进行迭代操作所以报错
  5. l[#l + 1] = e
  6. end
  7. return "{"..table.concat(l,",").."}"
  8. end
  9. function Set:print( s )
  10. print(Set:tostring(s))
  11. end
  12. Set:print(s3) -- 传递一个nil

如果你出现了这个报错信息,就好好检查一下代码中传递给迭代器的参数是否正确;特别是在多重调用的代码中须格外小心参数的传递

发表评论

表情:
评论列表 (有 0 条评论,210人围观)

还没有评论,来说两句吧...

相关阅读