はっとしたこと

ruby-1.9.2-p0 > 10.times.map{ 'foo' }.map{|v| puts v.object_id }
2152510320
2152510280
2152510200
2152510160
2152510120
2152510060
2152510020
2152509980
2152509920
2152509780
 => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] 
ruby-1.9.2-p0 > (['foo']*10).map{|v| puts v.object_id }
2151828140
2151828140
2151828140
2151828140
2151828140
2151828140
2151828140
2151828140
2151828140
2151828140
 => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] 

あまり意識してなかった。
http://doc.ruby-lang.org/ja/1.9.2/class/Array.html

数値とかSymbolはどちらも同じでobject_idは変わらない。少し前にRHGをさらっとだけ読んだのでこれは想像できた。

ruby-1.9.2-p0 > 10.times.map{ :urryyyy }.map{|v| puts v.object_id }
498728
498728
498728
498728
498728
498728
498728
498728
498728
498728
 => [nil, nil, nil, nil, nil, nil, nil, nil, nil, nil] 

予想があたってよかった。