我想遍歷一個字串的數組並將它們變成一個類的實例。事情是這樣的:如何動態定義局部變量
names_array = ["jack", "james","jim"]
names_array.each { |name| name = Person.new }
我使用eval像(names_array.each { |name| eval(name) = Person.new }
試過),但這似乎並沒有工作。無論如何在Ruby中這樣做?
編輯 上面的例子對我真正想要做的事情有點偏離,這是我的精巧代碼。
students = ["Alex","Penelope" ,"Peter","Leighton","Jacob"]
students_hash = Hash.new {|hash, key| key = { :name => key, :scores => Array.new(5){|index| index = (1..100).to_a.sample} } }
students.map! {|student| students_hash[student]}
在哪裏我的問題是
students.each {|student_hash| eval(student_hash[:name].downcase) = Student.new(students_hash)}
你打算如何再次從本地變量接收學生?聽起來像[xy問題](http://meta.stackexchange.com/a/66378)給我。 – spickermann 2015-02-09 05:45:42
@spickermann:他會問的下一件事是如何獲得數組/散列中的所有局部變量:) – 2015-02-09 05:52:00
我第二@spickermann:你爲什麼要這樣做?你希望達到什麼目的? – 2015-02-09 05:55:49