2012-04-04 13 views
88

よく引用されているRIP Hash rocket postは、新しくRubyのJSON形式のハッシュ(foo: "bar")の代わりにHash Rocketの構文(:foo => "bar")が廃止されたことを暗示しているようですが、ハッシュ・ロケットフォームは実際には非推奨/非推奨のRuby 1.9です。ハッシュロケットは推奨されていませんか?

+0

私は男がRubyとRailsだけを使うと思う。 –

答えて

119

ブログ投稿の著者は、過度に劇的で愚かであり、 quitenecessaryです。特に:

  1. あなたが引用必要シンボルのロケットを使用する必要があります。:'where.is' => xは有効ですが、ではありません。 Ruby 2.2ではこの問題が修正されており、Ruby 2.2以降でと言うことができます。
  2. 有効なラベルでないシンボルにはロケットを使用する必要があります。:$set => xは有効ですが、$set: xは有効ではありません。 Ruby 2.2以降では、この問題を引用符で回避することができます。'$set': xは正しいことを行います。
  3. ハッシュ記号でないキーを使用する場合は、's' => xは有効ですが、's': xは全く異なるものです。

もちろんの明白な方法で上記の周りにその場しのぎことができます。

h = { } 
h[:'where.is'] = 'pancakes house?' 
# etc. 

が、それはただ醜いと不要です。

ロケットは、ルビーのハッシュを痛めつけずにどこにも行かない。

+4

/劇的で愚か/劇的で敬虔な敬意を払って賛成する。あなたの残りの部分は立っています。 – dbenhur

+0

私はそれが確かに言語更新に関する最も雄弁な投稿の1つであることに同意します。少し誤解を招いても:D。 – mahemoff

+13

新しい構文を使用するかどうか疑問に思う必要があります。特定のシナリオで古い構文を使用する必要がある場合は、コードが複雑になります。 –

関連する問題