読者です 読者をやめる 読者になる 読者になる

ハッシュとシンボル

railsチュートリアルをやってます。
第4章まで進めてて、4.3.3ハッシュとシンボル が気になった。

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

となるのに

>> h2 = { name: "Michael Hartl", email: "michael@example.com" }
=> {:name=>"Michael Hartl", :email=>"michael@example.com"}
>> h3 = { ”name” => "Michael Hartl", "email" => "michael@example.com" }
=> {"name"=>"Michael Hartl", "email"=>"michael@example.com"}
>> h2 == h3
=> false

となる。
ここらへんの動きがなんとなくモヤモヤする。

github.com

シンボルに - が使えないから、仕方なく文字列を使うっていうのが主な理由らしいのですが。。
シンボルで無理やり - を使おうとするとこうなるのかな?

無理に-使おうとするとこういう書き方になるらしい。

>> {:"hoge-fuga" => "piyo"}[:"hoge-fuga"]
=> "piyo"