Ruby を学習しているときに、"=>" 演算子に出くわすことがあります。通常、私はそれを次の形で見ます
:symbol => value
関数に値を渡すときによく使われているようです。そのオペレーターは正確には何と呼ばれていますか?どういう意味ですか?それは Ruby に組み込まれていますか、それとも Rails や DataMapper などの別のフレームワークがシンボル クラスに追加するものですか? シンボルクラスと組み合わせてのみ使用されますか? ありがとう。
Ruby を学習しているときに、"=>" 演算子に出くわすことがあります。通常、私はそれを次の形で見ます
:symbol => value
関数に値を渡すときによく使われているようです。そのオペレーターは正確には何と呼ばれていますか?どういう意味ですか?それは Ruby に組み込まれていますか、それとも Rails や DataMapper などの別のフレームワークがシンボル クラスに追加するものですか? シンボルクラスと組み合わせてのみ使用されますか? ありがとう。
=>
ハッシュマップ リテラルの値からキーを分離します。オーバーロード可能ではなく、特にシンボルに接続されていません。
ハッシュマップ リテラルの形式{key1 => value1, key2 => value2, ...}
は ですが、関数の最後のパラメーターとして使用する場合は、中かっこを省略できます。したがって、 のような関数呼び出しが見られる場合f(:a => 1, :b => 2)
、は 1 つの引数で呼び出されます。これは、キーおよびと値およびf
を持つハッシュマップです。:a
:b
1
2
この演算子は「ハッシュロケット」と呼ばれることがあります。これは、ルビーハッシュを定義するときに使用することを意味します。
よく知らない場合は、これがRuby Hashのドキュメントです:http ://www.ruby-doc.org/core/classes/Hash.html
Ruby 1.9では、記号をキーとして使用するハッシュを定義している場合、別の構文を使用できるようになりました:http: //blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-構文
ヒント: のようなハッシュで使用している場合{:a => "A", :b => "B"}
、Ruby 1.9 では JSON ハッシュのように使用できます。
{
a: "A",
b: "B"
}
さらにグーグルをしたい場合は=>
、ロケットのように見えるため(<=>
宇宙船のように見えるのと同じ意味で)ハッシュロケットと呼ばれることがあり、ハッシュで使用されます。
または、SymbolHoundを使用できます。
Rubyに加えて、「=>」は何を意味し、どのように機能しますか? :
ほとんどの場合=>
、関数のパラメーターを定義するために が表示されます。これは非常に便利だと考えてください。すべてのパラメーターが巨大なハッシュにラップされるため、パラメーターの正しい順序を覚えておく必要はありません。したがって、次のような単純なヘルパー メソッドがある場合
link_to "My link", my_path, :confirm => "Are you sure?"
これはよりもはるかに優れています
link_to "My link", my_path, null, null, null, null, "Are you sure?"
めったに使用されないパラメーターを使用したいという理由だけで。したがって、ハッシュを使用してパラメーターを渡すことは、Ruby/Rails での作業を楽にするための慣例にすぎません。