あなたの問題がどこにあるのか正確にはわかりませんが、これが役立つことを願っています。
{key, value} メソッドでハッシュが機能しませんか?
はい、そうです。ラインで
words.each { |x| frequencies[x] += 1 }
ハッシュが呼び出されfrequencies、キーはx. そのキーの値は式によって返されますfrequencies[x]。
配列と同じですが、整数の代わりに文字列をインデックスとして使用します。は で識別されるdata[2]配列の要素に格納される値であり、は で示されるハッシュの要素に格納される値です。data2frequencies[x]frequenciesx
+=は Ruby の省略形として通常の意味を持つため、var += 1と同じですvar = var + 1。
で識別さfrequencies[x] += 1れるfrequencies[x] = frequencies[x] + 1ハッシュ要素の現在の値に 1 を追加しxます。
パズルの最後のピースは、frequencies作成された方法です。通常、割り当てられていないハッシュ要素にアクセスすると、 が返されますnil。method がないため+=、通常、 を使用するとエラーが発生します。しかし、 using を使用すると、デフォルト値がゼロのハッシュが作成されるため、このハッシュの存在しない要素はではなくとして評価され、要素を初めてインクリメントしようとすると、すべてが正常に機能するようになります。undefined method '+' for nil:NilClassNilClass#+Hash.new(0)0nil