Ruby 管道操作符

26

我是Ruby的新手,看到了这段代码片段:

1|2

它返回3

符号|的作用是什么?我似乎找不到任何文档。在这种情况下,它被称为“管道”操作符吗?还是被称为其他名称?

3个回答

32

这是一种位运算符,它们直接处理数值的二进制表示。

| 表示按位或。让我向您展示它的工作原理。

1|2 = 3 底层发生的事情是:

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

另一个例子:

10|2 = 10 现在用二进制表示:

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

14
在Ruby中,“运算符”实际上是方法调用。它们由每个类定义。
1和2都是Fixnum类型,所以在1|2中,管道符号表示"按位或"。 Ruby文档 按位操作信息

哦,是的,我甚至没有考虑到按位或。当我看到1|2并且结果是3时,我的想法立刻转向了加法,所以这就让我感到困惑了。 - Jeff Storey

2

啊,是的,和许多其他编程语言一样...不知道为什么我以为它会做其他的事情,谢谢。 - Jeff Storey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接