Gibt es ein Ruby entspricht dem Perl-Data :: rmap?
-
03-07-2019 - |
Frage
Perl Data :: rmap können Sie rekursiv einen Block über eine Liste auswerten von Datenstrukturen (lokal $ _ an jedes Element gesetzt wird) und die Liste kehren die Ergebnisse dieser Bewertungen zusammengesetzt aus. $ _ Kann verwendet werden, um die Elemente zu ändern.
Dies ist nützlich für über Dinge wie verschachtelte Hashes Iterieren oder Hierarchien von Arrays von Hashes und dergleichen.
Lösung
Rubys Enumerable
tut alles, was Sie wollen, glaube ich. „... und die Liste zurückzukehren, bestehend aus den Ergebnissen dieser Bewertungen“ zeigen Sie Enumerable#map
wollen. Mein erster Sprung würde wie folgt sein:
[ {...}, {...}, {...}, ... ].map do |hash|
hash.something
do_other_stuff_with(hash)
hash # important to have as last line b/c of how #map works
end
Andere Tipps
Ohne wirklich auf der Suche in die Details, ich bin nicht sicher, ob Sie das in Ruby ein Modul benötigen. Iteratoren und Blöcke gibt es zu tun, was Sie wollen.