4

重複の可能性:
「<<」の機能に興味がある

Rubyクラスの継承を読みました:「<<」(倍未満)とは何ですか?. インスタンスのメソッドを作成すると役立つことがわかりました(一種の継承)。しかし、私はコードに出くわしました:

threads << Thread.new(page) { |myPage|
h = Net::HTTP.new(myPage, 80)
puts "Fetching: #{myPage}"
resp, data = h.get('/', nil )
puts "Got #{myPage}:  #{resp.message}"
}

threads配列です。誰か<<がクラスの代わりにオブジェクトを使用する方法を説明できますか?

4

1 に答える 1

11

演算子は単なるメソッド<<であるため、本質的に何でもするためにオーバーロードできます。クラスは、オペレーターに対して独自の動作を自由に定義できます。この場合、は配列または配列に似たオブジェクトであり、典型的な配列セマンティクスはのエイリアスとして使用されます。このコードは、 という配列に new を追加するだけです。<<threads<<pushThreadthreads

于 2012-12-17T17:22:55.173 に答える