Rubyにおけるsymbolについて
最近会社でRubyを書いていて、黒魔術師レベル1になったtakochuuです。
Ruby楽しいっすね!!
だけどsymbolの用法が全然わからなかったので自分なりに解釈した。
symbolの場合は参照しているobjectは同じものになります。
1.9.3p0 :006 > x = :hoge => :hoge 1.9.3p0 :007 > y = :hoge => :hoge 1.9.3p0 :008 > x.object_id => 457448 1.9.3p0 :009 > y.object_id => 457448 1.9.3p0 :010 > x==y => true
文字列の場合は同じ文字列であっても違うobjectを参照します。
1.9.3p0 :011 > x = 'hoge' => "hoge" 1.9.3p0 :012 > y = 'hoge' => "hoge" 1.9.3p0 :013 > x.object_id => 70236779149500 1.9.3p0 :014 > y.object_id => 70236779137480 1.9.3p0 :015 > x==y => true
symbolは定義の度にobjectを生成しない為、Hashのkeyに使用するのがいいらしい。