ハッシュのシンボル
1.9からハッシュの生成に簡易な書き方ができるようになった。
{key:"value"} # => {:key=>"value"}
JSっぽい。
ただ言語仕様上、値がシンボルの時は空けざるを得ないので、空ける。
「::」になるとクラスの空間セパレータになってしまうから。
{ key: :value } # => {:key=>:value}
こうなるんだけど、これを見ると一瞬「ん?」となってしまう。
スペースを挟んでのコロンが「なんかsyntax間違ってんじゃねーの?」っぽく見える。
まとめ
コーディング規約としては、最初からキーと値を空けるようにしておくのが無難かな。
ちなみに
もしかすると{}の中なら「::」はキーと値の両方シンボルと見てくれるかと思ってやってみたけど、ならなかった。
2.0.0p247 :001 > {a::b} SyntaxError: (irb):1: syntax error, unexpected '}', expecting => from /Users/rightgo09/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
あと
{ :key => "value" }
が一番見やすいと思う。
自分の中で、ハッシュって感じがする。
「=>」を使ってPerlっぽいからかもしれない。
GithubのRuby Styleguideもこれみたいだし。