2

Peter Cooper の Beginning Ruby のポリモーフィズムの例の 1 つに、to_sメソッドが含まれています。彼は次の例を挙げています。

puts 1000.to_s
puts [1, 2, 3].to_s
puts ({ :name => 'Fred', :age => 10 }).to_s

これを出力として示します。

1000
123
age10nameFred

しかし、私が得る出力は次のとおりです。

1000
[1, 2, 3]
{:name=>"Fred", :age=>10}

なぜこれが当てはまるのか誰にも分かりますか?ルビーに変更がありましたか、それとも何か間違っていますか? それとも伝えるのに十分な情報がありませんか?どうすればそれを見つけることができますか?

4

1 に答える 1

3

例は、少し時代遅れになっている ruby​​ 1.8.7 を使用して動作します。Ruby 1.9.3 (現在のバージョン)to_sでは、配列とハッシュの実装が変更されました。

編集: Ruby 1.9 Array.to_s の動作が異なるのを参照してください。

于 2012-11-19T21:46:50.173 に答える