スキマハコ

わすれがちなスキマな事を詰め込んでいます。ITの他に暮らしについても書いています。

Arrayのto_sがバージョンで実装が違うよー

前回の内容に認識ミスがあったので、訂正!

#-------------------------------1.8.x
a = "ab"
p "a.unpack('C*').to_s=" + a.unpack('C*').to_s
#=>"a=9798"
#-------------------------------1.9.x
a = "ab"
p "a.unpack('C*').to_s="+a.unpack('C*').to_s
#=>"a=["9798"]"
なんか配列になった!!!!!
文字から文字コードを取得しよう - スキマハコ

配列になったわけではなくって、1.8と1.9で配列のto_sの実装が変更になったが正しい。
そもそも、unpackやpackはテンプレートに沿った変換を行った配列を返すものなので…。

↓1.8

to_s -> String
Array#join($,) と同じです。
[1, 2, 3, 4].to_s # => "1234"
class Array

↓1.9

to_s -> String
inspect -> String
自身の情報を人間に読みやすい文字列にして返します。
[1, 2, 3, 4].to_s # => "[1, 2, 3, 4]"
[1, 2, 3, 4].inspect # => "[1, 2, 3, 4]"
class Array

地味にこういうのきついなあ…。