Railsエラーノート

ゼロからWebサービスを作るRuby on Rails学習ブログ

なぜRubyのハッシュでシンボルを利用するのか?

例えば、
文字列をキーにしたハッシュの場合、

user = { "first_name" => "Michael", "last_name" => "Hartl" }

シンボルをキーにしたハッシュの場合、

user = { :name => "Michael Hartl", :email => "michael@example.com" }

ここRailsチュートリアルスクリーンキャストのYasukwa氏の説明では、

キーを
文字列とした場合(string)
整数とした場合(integer)
シンボルとした場合(symbol)
の3つの計算速度を処理した場合

文字列が一番時間がかかり整数が一番高速だった。

しかし、

ハッシュのキーを整数にして
1 => "Michael Hartl",
2 => "michael@example.com"
みたいなのは人間の目から見るとあまりにもわかりにくい。

なので計算処理速度も早く、人間の目にもわかりやすいいいとこ取りをしたのがシンボル。

user = { :name => "Michael Hartl", :email => "michael@example.com" }