红宝石管道操作员

Jef*_*rey 24 ruby pipe operators

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

1|2
Run Code Online (Sandbox Code Playgroud)

它返回3

什么是|运营商实际上呢?我似乎无法找到任何文件.此外,在这种情况下,它被称为"管道"运营商?或者它被称为其他东西?

小智 30

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

|平均OR.让我告诉你它是如何工作的.

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

1 = 0001
2 = 0010
--------
3 = 0011 <- result
Run Code Online (Sandbox Code Playgroud)

另一个例子:

10|2 = 10 现在二进制:

10 = 1010
2  = 0010
--------
10 = 1010 <- result
Run Code Online (Sandbox Code Playgroud)


小智 14

在Ruby中,"运算符"实际上是方法调用.它们由每个类定义.

1和2是Fixnum,所以在1|2管道中"按位或".

Ruby doc

按位信息