【问题标题】:Lua table.insert not workingLua table.insert 不工作
【发布时间】:2015-12-08 00:02:01
【问题描述】:

所以我只想在我定义的表中插入一个值,但它似乎根本不起作用。

如果我使用此代码:

t = {1,2,3}
table.insert(t, 9)

我得到的只是

LuaInterface.LuaScriptException: [string "main"]:2: 尝试调用 字段“插入”(零值)

有没有可能我使用的编译器没有这个功能?我真的不明白。如果这很重要,我现在正在使用 BizHawk 模拟器进行编译。

【问题讨论】:

  • 试试require("table").insert(t, 9)

标签: lua


【解决方案1】:

“table”或“table.insert”是否偶然在代码中之前的某个位置被覆盖?或者可能没有加载表库?

试试

require("table")

在调用 table.insert 之前看看它是否有效

【讨论】:

  • 如果全局变量table被覆盖,那么require("table")将不足以恢复它。
  • 正确,必须先执行 package.loaded["table"] = nil(对于 lua 5.2,否则 _LOADED["table"] = nil)
  • 谢谢,"require("table")" 成功了!由于上面发布的代码是整个文件中唯一的代码,我很确定没有任何内容被覆盖。所以我猜模拟器使用的是旧版本的 LUA。
  • 也有可能lua出于性能原因默认不打开库。例如,如果不调试,打开调试库可能毫无用处。打开默认库必须专门编码,如果创建了 lua 状态,则不会自动完成。
  • @Rochet2 是的,但requirepackage 也默认不加载。
猜你喜欢
  • 2011-09-01
  • 2016-07-01
  • 2017-05-23
  • 2023-03-06
  • 2014-12-21
  • 2018-12-28
  • 1970-01-01
  • 2014-01-31
  • 1970-01-01
相关资源
最近更新 更多