比红宝石少一倍

时间:2012-12-17 17:19:15

标签: ruby

  

可能重复:
  Interested in what the “<<” does

我读了Ruby class inheritance: What is `<<` (double less than)?。我知道为实例创建方法(继承类型)会有所帮助。但我遇到了一个代码:

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是一个数组。有人可以用对象而不是类来解释<<的用法吗?

1 个答案:

答案 0 :(得分:9)

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