"Рубиновый" способ создания нового экземпляра класса с параметрами из нескольких массивов? - PullRequest
2 голосов
/ 29 апреля 2011

Что такое "ruby-ish" способ создания нового экземпляра класса с параметрами из нескольких массивов в том же месте индекса в массивах?

Например, я сейчас делаю:

array1.each_with_index { |element, i|
     MyClass(element, array2[i], array3[i], array4[i])
}

Это отлично работает, но я не чувствую, что это рубин. Есть ли другой способ сделать это в Ruby?

- Дерек

Ответы [ 2 ]

5 голосов
/ 29 апреля 2011
[array1, array2, array3, array4].transpose.map{|args| MyClass(*args)}
0 голосов
/ 29 апреля 2011
array1.zip(array2, array3, array4){|args| MyClass(*args) }

Но будьте осторожны с различными размерами массива - как в вашем примере, он выбросит элементы массива array2-4, если они длиннее, чем array1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...