Есть ли Ruby-эквивалент для Perl Data :: Rmap? - PullRequest
1 голос
/ 07 января 2009

Perl's Data :: Rmap позволяет рекурсивно оценивать BLOCK по списку структур данных (локально устанавливая $ _ для каждого элемента) и возвращать список, составленный из результатов таких оценок. $ _ можно использовать для изменения элементов.

Это полезно для итерации по таким вещам, как вложенные хэши или иерархии массивов хэшей и т. П.

Ответы [ 2 ]

3 голосов
/ 07 января 2009

Ruby's Enumerable делает все, что вы хотите, я думаю. «... и вернуть список, составленный из результатов таких оценок» означает, что вы хотите Enumerable#map. Мой первый шаг будет примерно таким:

[ {...}, {...}, {...}, ... ].map do |hash|
  hash.something
  do_other_stuff_with(hash)
  hash                  # important to have as last line b/c of how #map works
end
1 голос
/ 07 января 2009

Не вдаваясь в подробности, я не уверен, что вам нужен модуль для этого в Ruby. Итераторы и блоки делают то, что вы хотите.

...