50

Ruby を学習しているときに、"=>" 演算子に出くわすことがあります。通常、私はそれを次の形で見ます

:symbol => value

関数に値を渡すときによく使われているようです。そのオペレーターは正確には何と呼ばれていますか?どういう意味ですか?それは Ruby に組み込まれていますか、それとも Rails や DataMapper などの別のフレームワークがシンボル クラスに追加するものですか? シンボルクラスと組み合わせてのみ使用されますか? ありがとう。

4

5 に答える 5

57

=>ハッシュマップ リテラルの値からキーを分離します。オーバーロード可能ではなく、特にシンボルに接続されていません。

ハッシュマップ リテラルの形式{key1 => value1, key2 => value2, ...}は ですが、関数の最後のパラメーターとして使用する場合は、中かっこを省略できます。したがって、 のような関数呼び出しが見られる場合f(:a => 1, :b => 2)、は 1 つの引数で呼び出されます。これは、キーおよびと値およびfを持つハッシュマップです。:a:b12

于 2011-01-11T21:57:34.983 に答える
13

この演算子は「ハッシュロケット」と呼ばれることがあります。これは、ルビーハッシュを定義するときに使用することを意味します。

よく知らない場合は、これがRuby Hashのドキュメントです:http ://www.ruby-doc.org/core/classes/Hash.html

Ruby 1.9では、記号をキーとして使用するハッシュを定義している場合、別の構文を使用できるようになりました:http: //blog.peepcode.com/tutorials/2011/rip-ruby-hash-rocket-構文

于 2011-01-11T22:30:03.460 に答える
6

ヒント: のようなハッシュで使用している場合{:a => "A", :b => "B"}、Ruby 1.9 では JSON ハッシュのように使用できます。

{
  a: "A",
  b: "B"
}
于 2011-01-11T23:01:04.780 に答える
5

さらにグーグルをしたい場合は=>、ロケットのように見えるため(<=>宇宙船のように見えるのと同じ意味で)ハッシュロケットと呼ばれることがあり、ハッシュで使用されます。

または、SymbolHoundを使用できます。

于 2011-01-11T22:31:35.800 に答える
-1

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 での作業を楽にするための慣例にすぎません。

于 2011-01-12T16:12:45.753 に答える