23

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

コード:

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

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

4

1 に答える 1

32

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

puts key.to_s + ' : ' + value

または、私が提案することは、文字列補間を使用することです:

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

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

于 2013-09-24T19:59:57.373 に答える