类型错误 - 没有从 nil 到整数的隐式转换 - 创建数组

Type Error - No implicit conversion from nil to integer - Creating a array

我是 Ruby 的新手。我正在尝试通过制作小程序来学习注意事项。这个程序有点多余,但我想通过语言的语法来提高自己。

无论如何,我正在尝试创建一个小程序,向用户询问人数。然后这个数量的人将参考数组的大小,然后程序将要求用户输入数组中每个元素的名称(所有这些都是 "nil" 值,因为新数组的元素将是空的)。最后,我想将数组打印回控制台以查看完成的元素。

但是,我收到一条错误消息 "Line 10: TypeError occured. No implicit conversion from nil to integer"。我的代码没有 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()

我可能做错了,但我正在尝试...

nameArray.each do |x| 在此循环中,x 被赋予数组的值,即 nil

试试这个。

for i in 0..num do
  nameArray[i] = gets.chomp.to_s
end

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()