2013-09-24 5 views
13

Ich versuche, Schlüssel zu drucken: Wert Derzeit bekomme ich immer wieder Fehler, wenn ich versuche, meine Codes auszuführen.Ruby print Hash-Schlüssel und Wert

Der Code:

output.each do |key, value| 
    puts key + ' : ' + value 
end 

Ich kann keinen Weg finden, um diese auf der gleichen Linie zu tun. Ich habe verschiedene Implementierungen ausprobiert, wie zum Beispiel das < < Symbol. Ich habe auch mit dem Drucken herumgewirbelt, mehrere puts-Anweisungen verwendet, und beide Werte an eine Zeichenkette angehängt und diese gedruckt.

+2

Welche Fehler erhalten Sie? – sawa

+0

Ich machte eine Annahme basierend auf den wenigen Informationen, die Sie zur Verfügung gestellt haben, aber es würde helfen, wenn Sie den genauen Fehler und den Inhalt des Hash mit 'output.inspect' geben würden. –

+0

Bitte klären Sie, was Sie meinen "Ich kann mir keinen Weg zu Mach das in derselben Zeile. " Versuchen Sie, mehrere Schlüssel/Wert-Paare in einer einzelnen Zeile auszugeben? Können Sie ein Beispiel für die Ausgabe angeben, die Sie erreichen möchten? – cduhn

Antwort

21

Je nach Inhalt Ihrer Hash müssen Sie möglicherweise die key in eine Zeichenfolge konvertieren, da es sich um ein Symbol handeln könnte.

puts key.to_s + ' : ' + value 

Oder was würde ich vorschlagen, Interpolation verwenden Zeichenfolge zu tun:

puts "#{key}:#{value}" 

Der Grund, warum Sie eine Fehlermeldung erhalten, wenn key ist in der Tat kein String, ist, weil es versucht, das nennen Methode + auf was auch immer key ist. Wenn es keine + Methode hat, erhalten Sie einen Fehler.

+3

+1 für die String-Interpolation – engineersmnky