对"<<"所做的事感兴趣

use*_*717 3 ruby

碰到了这段代码.

def setup(&block)
  @setups << block
end
Run Code Online (Sandbox Code Playgroud)

这条线做什么?

@setups << block
Run Code Online (Sandbox Code Playgroud)

对"<<"有什么兴趣.

手册说它是双班的操作员,但他在这里?

mik*_*kej 7

对于数组<<是append方法.它将一个项添加到数组的末尾.

因此,在您setup使用块调用时,在特定情况下,Proc存储块所包含的对象@setups.

注意:正如sbeam在他的评论中指出的那样,因为它<<是一个方法,它可以做不同的事情,这取决于它被调用的对象的类型,例如字符串上的连接,整数上的位移等.

请参阅" ary << obj→ary "文档.