Подтвердить что ты не робот

Оператор рубинового трубопровода

Я новичок в ruby, и я увидел этот фрагмент кода

1|2

и он возвращает 3

Что делает оператор | на самом деле? Кажется, я не мог найти документацию. Кроме того, в этом контексте он упоминается как оператор "трубы"? или это называется чем-то еще?

4b9b3361

Ответ 1

В Ruby "операторы" - это фактически вызовы методов. Они определяются каждым классом.

1 и 2 являются Fixnum, поэтому в 1|2 труба имеет "поразрядный" или "."

Ruby doc

Побитовая информация

Ответ 2

Это побитовый оператор, и они работают непосредственно с двоичным представлением значения.

| означает OR. Позвольте мне показать вам, как это работает.

1|2 = 3 что происходит под капюшонами:

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

другой пример:

10|2 = 10 теперь в двоичном формате:

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