2012-06-22 102 views
19

我是新來的紅寶石,我看到這個代碼片斷紅寶石管道運營商

1|2 

,並返回3

什麼是|運營商實際上呢?我似乎無法找到任何文件。另外,在這種情況下,它被稱爲「管道」操作員?還是被稱爲別的東西?

回答

13

在Ruby中, 「經營者」 實際上是方法調用。它們由每個類定義。

1和2是Fixnum等,1|2管道是「按位或」。

Ruby doc

Bitwise info

+0

哎呀,是的,我甚至沒有想過按位或。當我看到1 | 2並且結果是3時,我的想法立刻就被添加了,所以這讓我感到困惑。 –

23

這是一個位操作符和它們直接與值的二進制表示的工作。

|的意思是OR。讓我告訴你它是如何工作的。

1|2 = 3 抽油煙機下發生的事情是:

1 = 0001 
2 = 0010 
-------- 
3 = 0011 <- result 

另一個例子:

10|2 = 10現在 二進制:

10 = 1010 
2 = 0010 
-------- 
10 = 1010 <- result 
+1

+1很好的解釋! – JGutierrezC