有没有办法在Ruby中创建动态变量名?

时间:2019-07-01 03:03:59

标签: ruby oop username naming

如果我创建一个student类,并且每次创建一个新的学生对象,如何动态创建一个新的变量名以区分不同的学生?我不知道会有多少学生。

在下面代码的最后一行,我使用student1作为新Student对象的变量名。如果我想创建100个学生对象,并且变量名是student1student100,我将如何动态创建这些变量名?

class Student
  attr_accessor :name

  def initialize(name)
    @name = name
    puts "Hello #{name}"
  end
end

puts "What is your name?"
answer = gets.chomp
student1 = Student.new(answer)

1 个答案:

答案 0 :(得分:2)

您需要的是:

students = Array.new(100) { |i| Student.new("Name #{i}") }

如果要访问第i个学生,可以致电

students[i]

例如,无需创建一个名为“ students_13”的局部变量。

第一个学生是student[0],最后一个是student[99]