我正在尝试学习如何对Computercraft Mining Turtles进行编程,并且我想编写一个程序,提示用户提供随后构建的多维数据集的边长尺寸。我使用io.read()来让用户输入边长,如果他想通过Y / N输入使立方体变为实心或空心。但是,当我检查最后一个问题的答案时,我得到一个错误,我有一个表,需要一个字符串。 错误代码:Cube:17:错误的参数:字符串预期,得到表
这是我的代码
--"Cube constructor"
--"Powered by UglySoft"
function get_dimensions()
--"prompts for cube dimensions and Solid"
print("Please enter the Cube dimensions.\n")
io.write("Cube side length ")
side_length = tonumber(io.read())
io.write("Solid Cube? (Y/N) ")
solid = io.read()
solid = string:lower()
return side_length, solid
end
function build_solid(side_length)
print("Building solid Cube with side length ", side_length)
end
function build_hollow(side_length)
print("Building hollow Cube with side length ", side_length)
end
function main()
--"main part of the program"
term.clear()
print("Welcome to Cube Builder")
print("powered by UglySoft \n")
get_dimensions()
if solid == "y" then
build_solid()
else
build_hollow()
end
end
main()
我对lua很新,我甚至不确定在这种情况下是否应该使用io.read()。非常感谢任何帮助,并随时提出问题。
答案 0 :(得分:1)
您的问题是string:lower()
,它会尝试在string.lower(string)
表格上运行string
。那不行。
您需要solid:lower()
或string.lower(solid)
。
答案 1 :(得分:0)
在ComputerCraft中,您通常应该使用内置函数
read()
而不是io.read
,因为io.read
用于读取文件而不是用户输入。
您也可以使用io.write
或write
代替print
。