重複の可能性:とハッシュ表記
の間に違いはありますか?:key => “value”
key: “value”
これの違いは何ですか:
method: :delete
この?
:method => :delete
Railsのバージョンが違うことと関係があると思いますが、よくわかりません。私はRails3.xでしか作業していません。
重複の可能性:とハッシュ表記
の間に違いはありますか?:key => “value”
key: “value”
これの違いは何ですか:
method: :delete
この?
:method => :delete
Railsのバージョンが違うことと関係があると思いますが、よくわかりません。私はRails3.xでしか作業していません。
これらは完全に同等ですが、最初のものはruby 1.9以降でのみ使用できます(もちろん、それ以降)。
ruby 1.8では、ハッシュ構文は=>
、とも呼ばれるを使用していましたhash rocket
。何でも前に、何でも後ろに置くことができますが、前にあるのは価値の後ろにあるあなたの鍵です。キーとしてシンボルがあり、値としてシンボルがある場合は、次のように記述します。
:method => :delete
しかし、あなたも書くことができます
{ 1 => 'one', :2 => 'two', 'THREE' => 3 }
現在、ruby 1.9.xでは、新しい短い構文が導入されました。ほとんどの人は記号をキーとして使用するので、次のように書くことができます。
method: :delete
これは、より短い/よりクリーンなバージョンです。また、両方のスタイルを混在させることが可能であり、場合によっては必要になることにも注意してください。
たとえば、ruby 1.8では、次のように記述します。
{ :class => 'smthg', :'data-type' => 'a type' }
これは、ruby1.9では次のように変換されます
{ class: 'smthg', :'data-type' => 'a type' }
「古い」ハッシュ構文も引き続き使用できることに注意してください。それは好みの問題です。個人的には、キーとして記号のみを使用するハッシュには、クリーン/ショートバージョンを使用します。私は通常、単一のハッシュにハッシュスタイルを混在させないようにしています:)