0

重複の可能性:ハッシュ表記
の間に違いはありますか?:key => “value”key: “value”

これの違いは何ですか:

method: :delete

この?

:method => :delete

Railsのバージョンが違うことと関係があると思いますが、よくわかりません。私はRails3.xでしか作業していません。

4

1 に答える 1

0

これらは完全に同等ですが、最初のものは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' }

「古い」ハッシュ構文も引き続き使用できることに注意してください。それは好みの問題です。個人的には、キーとして記号のみを使用するハッシュには、クリーン/ショートバージョンを使用します。私は通常、単一のハッシュにハッシュスタイルを混在させないようにしています:)

于 2012-08-05T20:22:49.053 に答える