我是Ruby的新手。我正在尝试通过制作小程序来学习注意事项。这个程序有点多余,但我想用语言的语法来改善自己。
无论如何,所以我正在尝试创建一个小程序,它会向用户询问一定数量的人。然后,这一数量的人将引用数组的大小,然后程序将要求用户输入数组中每个元素的名称(由于新数组的元素将为空,因此ALL为“nil”值)。最后,我想将数组打印回控制台以查看已完成的元素。
但是,我收到一条错误,说“第10行:发生了类型错误。没有从nil到整数的隐式转换”。我的代码不是100%完成的。我还在尝试添加更多东西,但是我想在我做这个之前先解决这个错误。有谁愿意帮助我吗?
这是代码
def Array_Maker
puts "How many people would you like to enter? : "
num = gets.chomp.to_i
nameArray = Array.new(num)
puts "\nEnter the names of the people you wish to add: "
nameArray.each do |x|
nameArray[x] = gets.chomp.to_s
end
nameArray.each do |x|
puts x
end
end
Array_Maker()
我可能做错了,但我正在努力......
答案 0 :(得分:1)
nameArray.each do |x|
在此循环中,x
被赋予数组的值nil
试试这个。
for i in 0..num do
nameArray[i] = gets.chomp.to_s
end
答案 1 :(得分:1)
行nameArray.each do |x|
遍历数组,x
设置为每个索引处数组的值。
更好的方法可能是使用map
方法构建数组。像这样:
def array_maker
puts "How many people would you like to enter? : "
num = gets.chomp.to_i
puts "\nEnter the names of the people you wish to add: "
nameArray = num.times.map do
gets.chomp.to_s
end
nameArray.each do |x|
puts x
end
end
array_maker()