Ruby | = оператор присваивания

Найдена таблица http://phrogz.net/programmingruby/language.html#table_18.4, но не удалось найти описание для |=

Как работает оператор присваивания |=?

Ответы

Ответ 1

Побитовое присвоение.

x |= y

является сокращением для:

x = x | y

(так же, как x += y является сокращением для x = x + y).

Ответ 2

При работе с массивами | = полезно для уникального добавления массива.

>> x = [1,2,3]
>> y = [3,4,5]

>> x |= y
>> x
=> [1, 2, 3, 4, 5]

Ответ 3

С завершением ||= и &&=, которые имеют специальную семантику, все составные операторы присваивания переводятся в соответствии с этим простым правилом:

a ω= b

совпадает с

a = a ω b

Таким образом,

a |= b

совпадает с

a = a | b

Ответ 4

Он указан в указанной вами ссылке. Это назначение, объединенное с побитовым ИЛИ. Это эквивалентно:

a = a | b
a |= b