Есть ли Ruby-эквивалент для Perl Data :: Rmap?
-
03-07-2019 - |
Вопрос
Perl Data :: Rmap позволяет рекурсивно оценивать BLOCK по списку структур данных (локально устанавливая $ _ для каждого элемента) и возвращает список, составленный из результатов таких оценок. $ _ можно использовать для изменения элементов.
Это полезно для итерации таких вещей, как вложенные хэши или иерархии массивов хэшей и т. п.
Решение
Я думаю, что
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
Другие советы
Не вдаваясь в подробности, я не уверен, что вам нужен модуль для этого в Ruby. Итераторы и блоки делают то, что вы хотите.
Не связан с StackOverflow