类型错误 - 没有从 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()
我是 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()