我读了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
是一个数组。有人可以用对象而不是类来解释<<
的用法吗?
答案 0 :(得分:9)
<<
运算符可以重载以执行任何操作,因为它只是方法。类可以自由地为<<
运算符定义自己的行为。在这种情况下,threads
是一个数组或类数组的对象,典型的数组语义使用<<
作为push
的别名。代码只是将新Thread
附加到名为threads
的数组中。