💬
[Bug #21641] Hash#to_s の結果が Ruby 3.4 から変わっているが明文化されていないというバグ報告
[Bug #21641] Hash#to_s behaves different in 3.4
- 以下のように
Hash#to_sの結果が Ruby 3.4 から変わっているが明文化されていないというバグ報告
data = { x: 1 }
p(data.to_s)
# Ruby 3.3 => "{:x=>1}"
# Ruby 3.4 => "{x: 1}"
- 起票者は
#to_sの結果を Redis に保存していて困っているらしい - これなんですが
Hash#inspectの結果が Ruby 3.4 から以下のように変わることはリリースノートに載っているんですがHash#to_sについては特に言及はされてないんですよねえ
data = { x: 1 }
p(data.inspect)
# Ruby 3.3 => "{:x=>1}"
# Ruby 3.4 => "{x: 1}"
- そもそも実装的には
Hash#inspectはHash#to_sの alias として定義されているぽいのでどっちかって言うと変わったのはHash#to_sになるのかなあ
pp Hash.method(:inspect).original_name
# => :to_s
Discussion