基本 LUA 个问题
Basic LUA problems
我正在使用 ComputerCraft,这是一个 Minecraft mod,可以添加计算机、监视器、modems 等等,可以使用 Lua 脚本对其进行编程。
http://www.computercraft.info/wiki/Main_Page
虽然 运行 我的脚本出现此错误:"bios:171: bad argument: string expected, got 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
我们将不胜感激。
您在 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("")
.
我正在使用 ComputerCraft,这是一个 Minecraft mod,可以添加计算机、监视器、modems 等等,可以使用 Lua 脚本对其进行编程。
http://www.computercraft.info/wiki/Main_Page
虽然 运行 我的脚本出现此错误:"bios:171: bad argument: string expected, got 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
我们将不胜感激。
您在 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("")
.