Динамическое именование массивов / хэшей в Ruby - PullRequest
2 голосов
/ 15 августа 2011

Итак, у меня есть цикл for, который создает хэш или массив в зависимости от того, что передается.

Мне нужно создать эти массивы и хэши с именами, основанными на передаваемых данных.

Это так же, как

window['MyNewArray-' + i] = [];

В JavaScript. Есть ли какой-нибудь эквивалент для Ruby?

Ответы [ 4 ]

4 голосов
/ 15 августа 2011

Вы можете сделать что-то вроде:

window = {}
5.times do |i|
  window["my_new_array_#{i}"]=[]
end
2 голосов
/ 15 августа 2011

Итак, вы можете создать хеш Ruby, используя:

h = {}

, а затем добавить пару ключ / значение, используя оператор store или []=.

Вот так:

h["foo_#{i}"] = []

Документация

2 голосов
/ 15 августа 2011

Тот же код работает и в Ruby, и делает то же самое.

1 голос
/ 15 августа 2011
window = Hash[1.upto(5).map { |n| ["name-#{i}", []] }]
...