2012-03-07 44 views
2

我知道Ruby类<<自我

class << self 

一样。但是这个技巧的底层机制是什么?

<<在Ruby是二进制向左移位运算符

因此,我们在class变量做二进制左移?

请说明。

回答

2

这不仅仅是二进制左移 - Ruby中的<<也是singleton class definition语法。使用这个语法是因为表示Ruby中所有类的所有对象都是单例类。

+3

以及Array#push()的替代语法,例如, arr <<元素。 – Jakobinsky 2012-03-07 11:48:37

+1

@Jakobinsky:这只是简单的运算符重载 – 2012-03-07 11:51:28

+0

这不是一种方法,它的语法。 – Reactormonk 2012-03-07 12:02:10