web-dev-qa-db-ja.com

Rubyハッシュキーと値を出力

Key:valueを印刷しようとしています現在、コードを実行しようとするとエラーが発生し続けます。

コード:

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

同じ行でこれを行う方法がわかりません。 <<記号の使用など、さまざまな実装を試しました。また、複数のputsステートメントを使用し、文字列に両方の値を追加して印刷するprintをいじくりました。

18
thisisnotabus

Hashの内容によっては、keyが記号である可能性があるため、文字列に変換する必要がある場合があります。

puts key.to_s + ' : ' + value

または、文字列補間を使用することをお勧めします:

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

keyが実際に文字列ではない場合にエラーが発生する理由は、keyが何であっても+メソッドを呼び出そうとしているためです。 +メソッドがない場合、エラーが発生します。

25