基本的LUA问题

我正在使用ComputerCraft,这是一款增加了计算机,监视器,调制解调器等的Minecraft mod,可以使用Lua脚本进行编程。

http://www.computercraft.info/wiki/Main_Page

在运行我的脚本时,我得到这个错误:“bios:171:错误的参数:预期的字符串,得到零”。

我不明白,因为它说171行,即使我的代码不超过30行..有人可以解释?

monitor = peripheral.wrap("right")
monitor.clear()
monitor.setCursorPos(1, 1)
monitor.setTextScale(1)
monitor.write("Current mode:")
monitor.setCursorPos(1, 3)
monitor.write("furnace")
redstone.setOutput("back", false)
print("blablabla")
write()
if input == ja then
  print("k")
  redstone.setOutput("back", true)
  monitor.clear()
  monitor.setCursorPos(1, 1)
  monitor.write("blabla")
else
  print("u sux")
end

帮助将不胜感激。


您在bios.lua中调用了一个错误,该错误实现了您可以在脚本中使用的功能。 像write

如果我们看一下bios.lua,我们可以看到第171行实际上是write实现的一部分。

它说: while string.len(sText) > 0 do ,其中sText

是第154行中function write( sText )的输入参数。

对于sText nil的情况,没有适当的错误处理或默认值。 程序员在这里做了一个马虎的工作。

在这种情况下,第171行中的string.len(sText)将导致您收到的错误。

为了解决这个问题,您必须删除空的调用来write ,这相当于write(nil)或者您必须提供一些输入字符串。

write("something")不会导致任何错误。 如果你想打印一个空字符串,只需调用write("")

链接地址: http://www.djcxy.com/p/92451.html

上一篇: Basic LUA problems

下一篇: Lua: index expected, got nil