Примечание: я новичок в Ruby.
Вопрос: Как я могу заставить print3 распечатать массив, используя цикл до?
Это может быть проще, чем я понимаю, но я потратил много часов, пытаясь решить ниже. Все, что я могу найти, это «простые» примеры до цикла.
У меня есть метод (print3), который мне нужно использовать до цикла. print3 извлекает массив из метода input_students. оба метода приведены ниже.
Я получаю следующее в irb - directory.rb:30:in ``print3``: undefined method
[] for nil:NilClass (NoMethodError).
Строка 30 относится к
puts "#{i+1} #{students[i][:name]} (#{students[i][:cohort]}
cohort)"
Мой код:
def input_students
puts "Please enter the names of the students"
puts "To finish, just hit return twice"
students = []
name = gets.chomp.downcase
while !name.empty? do
students << {name: name, cohort: :november}
puts "Now we have #{students.count} students"
name = gets.chomp.downcase
end
students
end
def print3(students)
i = 0
until i > students.length
puts "#{i+1} #{students[i][:name]} (#{students[i][:cohort]}
cohort)"
i += 1
end
end
Спасибо за любую помощь, которую вы можете предоставить.