红宝石管道操作员

时间:2012-06-22 22:59:34

标签: ruby operators pipe

我是ruby的新手,我看到了这段代码

1|2

并返回3

|运算符实际上做了什么?我似乎无法找到任何文件。此外,在这种情况下,它被称为“管道”运营商?或者它被称为其他东西?

3 个答案:

答案 0 :(得分:30)

这是一个按位运算符,它们直接使用值的二进制表示。

|表示OR。让我告诉你它是如何工作的。

1|2 = 3 引擎盖下发生的事情是:

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

另一个例子:

10|2 = 10 现在是二进制:

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

答案 1 :(得分:14)

在Ruby中,“运算符”实际上是方法调用。它们由每个班级定义。

1和2是Fixnum,所以在1|2管道中“按位或”。

Ruby doc

Bitwise info

答案 2 :(得分:2)