書き方に違いはありますか
parameter: "String"
そしてより長い
:parameter => "String"
最初のものはRuby 1.8では機能しません
どちらもハッシュのキーと値のペアを構築します。ほとんどの場合、それらは交換可能です。この構文は Ruby 1.9 で導入され、 JSONparameter: "String"
をモデルにしています。
いくつかの違い/落とし穴があります。最大の問題は、新しい構文が引用符で囲まれたキーを処理しないことです。1.8 スタイルのハッシュでは、次のことができます。
:"multi word key" => some_value
1.9 スタイルのハッシュでは、これは構文エラーです。
"multi word key": some_value
それは単なる構文のSugarです。
Ruby 1.8.7 で irb を見ると
1.8.7 :004 > {:name => 'String'}
=> {:name=>"String"}
そして1.9.3で
1.9.3p392 :002 > {name: 'String'}
=> {:name=>"String"}
どちらも同じ形式を返します。
変わりはない。
簡単な概要を説明するときに見やすいと思うので、2 番目の構文を好みます。
Ruby 1.9.x および 2.0.0 の場合