25

我是 ruby​​ 新手,我看到了这个代码片段

1|2

它返回 3

|运营商实际上是做什么的?我似乎找不到任何关于它的文档。此外,在这种情况下,它是否被称为“管道”运算符?或者它被称为别的东西?

4

3 回答 3

31

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

|意思是或。让我告诉你它是如何工作的。

1|2 = 3 幕后发生的事情是:

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

另一个例子:

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

10 = 1010
2  = 0010
--------
10 = 1010 <- result
于 2014-04-22T11:33:49.200 回答
14

在 Ruby 中,“操作符”实际上是方法调用。它们由每个类定义。

1 和 2 是 Fixnum ,因此在1|2管道中执行“按位或”。

红宝石文档

按位信息

于 2012-06-22T23:04:36.353 回答
2

它是按位或运算符。

http://www.java2s.com/Code/Ruby/Language-Basics/dobitwiseoperationsinRuby.htm

于 2012-06-22T23:03:31.357 回答