1. ホーム
  2. ruby

[解決済み] Hash Rocketは非推奨ですか?

2022-11-23 03:55:59

質問

よく引用される RIPハッシュロケットの投稿 は、Hash Rocketの構文( :foo => "bar" ) が廃止され、新しくRubyに導入されたJSONスタイルのハッシュ ( foo: "bar" ) が推奨されていますが、Ruby 1.9 の時点で Hash Rocket 形式が実際に非推奨/推奨されていないことを示す決定的なリファレンスは見当たりません。

どのように解決するのですか?

そのブログ記事の著者は、大げさで愚かなことをいっている、その => いまだに かなり 必要 . 特に

  1. 有効なラベルでないシンボルには、ロケットを使わなければなりません。 :$set => x は有効ですが $set: x は有効ではありません。Ruby 2.2+では、引用符を使ってこの問題を回避することができます。 '$set': x はThe Right Thingを行います。

  2. 文字列、整数、定数など、シンボルではないキーをHashで使用する場合、ロケットを使用する必要があります。例えば 's' => x は有効ですが 's': x は全く別のものです。

もちろん上記のことを当たり前のようにこじつけることは可能です。

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

というのがありますが、これは醜いだけで不要です。

RubyのHashを潰さないとロケットは進みませんね。