ObjectSpace その2
<< と + を混ぜたらどうなるんだってことで試してみた。
str = "abcA" str << "B" str << "C" str << "D" str << "E" + "F" + "G" + "H" ObjectSpace.each_object(String) do |o| if o =~ /^abc/ p o + ":" + o.object_id.to_s end end
- 結果 -
"abcABCDEFGH:21619088" "abcA:21620120"
最初の
str = "abcA"
でインスタンスが一つ作られて
最初の連結でもう一つ。
あとは二つめに作られたインスタンスに対して処理をしているような。
なんで最初のインスタンスに対して操作されて行かないんだろうか。
javaみたいにStringがどっかにプールされていてそこを見ている?