次のようなハッシュを使用している人がいます。
end_points = { "dev" => "http://example.com"}
そしてこれを使用する他の場所で:
end_points = { :dev => "http://example.com"}
これら2つのアプローチの違いは何ですか?
:dev
はシンボルで'dev'
あり、は文字列です。
ほとんどの場合、記号が使用されますが、どちらも正しいです。いくつかは主題について読んだ:
最初のケースでは文字列を使用し、2番目のケースではシンボルを使用します。シンボルはRubyの特定のタイプです。プログラム全体では、symbolのインスタンスは1つだけですが、stringはそれを多数持つことができます。つまり
> :sym.__id__
=> 321608
> :sym.__id__
=> 321608
> "sym".__id__
=> 17029680
> "sym".__id__
=> 17130280
ご覧のとおり、シンボルは常に同じIDを持っています。つまり、シンボルは常に同じオブジェクトですが、文字列は常に新しいメモリの場所に新しい文字列があります。これが、シンボルがハッシュキーとしてより一般的である理由であり、単純に高速です。