我的代码出现了问题,我不知道是什么问题,我在网上搜索过,并且_Gx方法被建议作为loadtring(x)之类的最佳方式...虽然我会对任何一方感到高兴,都无法让任何一个人上班。我想要做的是,在ComputerCraft中,将函数名称和参数发送给乌龟,我正在通过将两个值保存到表并发送到表中,然后在乌龟的程序中,有一个大的列表函数,并使用命令,从发送的字符串中调用它们,并插入arg。我的错误是“试图打电话给零”,我不太明白为什么会这么说......先谢谢你!
修改
我按照要求编辑了我的代码,以表明即使剥离所有其他内容,这仍然会失败。我甚至可以通过将变量完全取出并将弦直接放入_G来进一步剥离它。即使这样做也仍然失败。我决定保留它,因为这就是我以后实际使用它的方式。调用该函数通常正常。我正在使用版本Luaj-jse 2.0.3
function foo ()
print ("HI!")
end
print (_VERSION)
答案 0 :(得分:2)
我不知道rednet
是什么,但似乎你将函数名称传递给另一个Lua VM,它对该函数一无所知(该函数在该VM的全局表中不存在) 。
因此,将函数定义作为字符串传递并由接收者使用loadstring
执行它是唯一的解决方案。