私は、Ruby in Rails 4.0で、Railsはシンボルまたは文字列のいずれかのキーを使って、HashWithIndifferentAccess
クラスを使ってハッシュの値を参照できることを学んでいます。たとえば、params
ハッシュは、シンボルまたは文字列を使用して参照することができます。これは、クラスがHashWithIndifferentAccess
であるためです。HashWithIndifferentAccessを使用している場合の文字列とシンボル
すなわち:params["id"] and params[:id] --> both access the id in the params hash
両方が使用され、レールによって許容されることができるが、明らかにいずれかのベストプラクティス/パフォーマンス上の理由のために他のより好ましい一ありますか?私の最初の考えは、いったんそれらが格納されると、それらのメモリを保持しているという事実のためにシンボルを使用するほうが良いということでした。これは文字列とは対照的です。文字列ごとに新しいメモリが必要です。
これは間違いありませんか?あるいは、文字列や記号を使用するかどうかは本当に問題ではありませんか?
'HashWithIndifferentAccess'がすべてのシンボルを文字列にマッピングすることを終えるとしたら、それは問題ではありませんか? – the12
詳細については、「HashWithIndifferentAccess」を使用して文字列を使用すると、SymbolからStringへのキャストを避けるために少しだけパフォーマンスが向上すると言えます。 –