是否有与Perl的Data :: Rmap相当的Ruby?

时间:2009-01-06 22:05:00

标签: ruby perl recursion nested language-comparisons

Perl的Data::Rmap允许您递归地评估数据结构列表上的BLOCK(本地设置每个元素的$ _)并返回由此类评估结果组成的列表。 $ _可用于修改元素。

这对于迭代嵌套哈希或哈希数组的层次结构等内容非常有用。

2 个答案:

答案 0 :(得分:3)

Ruby的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 :(得分:1)

如果没有真正研究细节,我不确定你在Ruby中需要一个模块。迭代器和块可以做你想做的事。