0

我的代码有问题,我不知道发生了什么,我在网上搜索过,建议 _Gx 方法是最好的方法,而不是像 loadstring(x) 这样的方法......虽然我会很高兴,不能让任何一个工作。我想要做的是,在 ComputerCraft 中,将函数名称和参数发送给海龟,我通过将两个值保存到表中并跨表发送,然后在海龟的程序中,有一个大列表函数,并使用命令,从发送的字符串中调用它们并插入 arg。我的错误是“尝试调用 nil”,我不太明白它为什么这么说......在此先感谢!

编辑

按照要求,我已经编辑了我的代码,以表明即使剥离所有其他内容,这仍然失败。我什至可以通过将变量完全取出并将字符串直接放入_G来进一步剥离它。即使这样做仍然失败。我决定保留它,因为这就是我以后实际使用它的方式。调用该函数通常可以正常工作。我正在使用 Luaj-jse 2.0.3 版本

function foo ()
  print ("HI!")
end

print (_VERSION)
4

1 回答 1

2

我不知道是什么rednet,但似乎您将函数名称传递给另一个 Lua VM,该 VM 对该函数一无所知(该函数在该 VM 的全局表中不存在)。
因此,将函数定义作为字符串传递并由接收器执行它loadstring是唯一的解决方案。

于 2013-03-14T07:58:45.703 回答