Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我是 ruby 新手,我看到了这个代码片段
1|2
它返回 3
|运营商实际上是做什么的?我似乎找不到任何关于它的文档。此外,在这种情况下,它是否被称为“管道”运算符?或者它被称为别的东西?
|
这是一个按位运算符,它们直接使用值的二进制表示。
|意思是或。让我告诉你它是如何工作的。
1|2 = 3 幕后发生的事情是:
1|2 = 3
1 = 0001 2 = 0010 -------- 3 = 0011 <- result
另一个例子:
10|2 = 10 现在是二进制:
10|2 = 10
10 = 1010 2 = 0010 -------- 10 = 1010 <- result
在 Ruby 中,“操作符”实际上是方法调用。它们由每个类定义。
1 和 2 是 Fixnum ,因此在1|2管道中执行“按位或”。
红宝石文档
按位信息
它是按位或运算符。
http://www.java2s.com/Code/Ruby/Language-Basics/dobitwiseoperationsinRuby.htm