我正在使用ComputerCraft,这是一个增加计算机,显示器,调制解调器等的Minecraft mod,可以使用Lua脚本进行编程。
http://www.computercraft.info/wiki/Main_Page
在运行我的脚本时,我收到此错误:" bios:171:错误的参数:字符串预期,得到nil"。
我不明白因为它说第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
帮助将受到高度赞赏。
答案 0 :(得分:3)
您在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("")
。