Ich habe unter Array, die gleiche Schlüsselwerte wie {'Hunde' => 11, 'Katzen' => 3} zusammenfassen muss. Um die gleichen Schlüsselwerte in Ruby zusammenzufassen
animals = [['dogs', 4], ['cats', 3], ['dogs', 7]]
Ich habe die unten Antwort gefunden, während ich auf Stackoverflow gesucht (ich den Link :(verloren)
print animals.each_with_object(Hash.new(0)) { |(k, v), h| h[k] += v }
Allerdings kann ich es nicht in meinem Kopf klar machen, dass das, was sie k, v und h genau. Denn "h" zweite Argument des Blockcodes zu bleiben, aber es continious mit h [k]. Könnte jemand den Code eindeutig erklären?
Danke zu viel.
Sie für Ihre prompte Antwort danken. Was soll ich oben Code hinzufügen, einfach um das Ergebnis an cmd zu drucken (ich meine für "do", "end" -Syntax)? – Syildiz
In Ruby gibt es 'puts', mit denen Strings angezeigt werden. Wenn Sie das Ergebnis einer Variablen zuordnen, können Sie 'puts result.inspect' eingeben, wobei 'result' das ist, was Sie zuweisen. Die Debug-freundliche 'p' Methode ist noch einfacher,' p result' ist äquivalent zu dieser anderen Version. – tadman