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

操作符可以被<<重载来做任何事情,因为它只是一个方法。一个类可以自由地为操作员定义自己的行为<<。在这种情况下,threads是一个数组或类似数组的对象,典型的数组语义<<用作push. 该代码只是将一个新的附加Thread到一个名为threads.

于 2012-12-17T17:22:55.173 回答