私は ruby 1.8.7 で作業していませんでしたが、最近、次のことに驚きました。
{:k => 30}.to_s #=> "k30"
Ruby 1.8.7のハッシュを文字列に変換して次のようにする修正を使用する準備はできていますか?
{:k => 30}.to_s #=> "{:k=>30}"
私は ruby 1.8.7 で作業していませんでしたが、最近、次のことに驚きました。
{:k => 30}.to_s #=> "k30"
Ruby 1.8.7のハッシュを文字列に変換して次のようにする修正を使用する準備はできていますか?
{:k => 30}.to_s #=> "{:k=>30}"
hash.to_s
は実際に から に変更され1.8.7
ました1.9.3
。
では1.8.7
(参照: http://ruby-doc.org/core-1.8.7/Hash.html#method-i-to_s ):
ハッシュを [ key, value ] ペアの配列に変換してから、Array#join とデフォルトのセパレーターを使用してその配列を文字列に変換することにより、hsh を文字列に変換します。
で1.9.3
、 (参照: http://www.ruby-doc.org/core-1.9.3/Hash.html#method-i-to_s )
の別名: 検査
1.8.7 のハッシュ クラスにモンキー パッチを適用して、次のようにローカルで同じことを行うことができます。
class Hash
alias :to_s :inspect
end
モンキーパッチ適用前:
1.8.7 :001 > {:k => 30}.to_s
=> "k30"
1.8.7 :002 > {:k => 30}.inspect
=> "{:k=>30}"
モンキーパッチ適用後:
1.8.7 :003 > class Hash; alias :to_s :inspect; end
=> nil
1.8.7 :004 > {:k => 30}.to_s
=> "{:k=>30}"