web-dev-qa-db-ja.com

ハッシュロケットは非推奨ですか?

よく引用されている RIP Hash rocket post は、Hash Rocket構文(:foo => "bar")は、Rubyの新しいJSONスタイルのハッシュ(foo: "bar")、しかし、Ruby 1.9。

97
mahemoff

そのブログ投稿の著者は、過度に劇的で愚かであり、=>静止かなり必要 です。特に:

  1. 引用符が必要なシンボルにはロケットを使用する必要があります::'where.is' => xは有効ですが、'where.is': xは違います。 Ruby 2.2はこの問題を修正したため、'where.is': x in 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.

しかし、それはjustいだけで不必要です。

ロケットは、Rubyのハッシュを損なうことなくどこにも行きません。

129
mu is too short