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

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

22 голосов
/ 20 декабря 2011

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

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

Ответы [ 4 ]

29 голосов
/ 20 декабря 2011

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

x |= y

- это сокращение для:

x = x | y

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

28 голосов
/ 10 июня 2014

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

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

>> x |= y
>> x
=> [1, 2, 3, 4, 5]
9 голосов
/ 20 декабря 2011

За исключением ||= и &&=, которые имеют особую семантику, все составные операторы присваивания переводятся согласно этому простому правилу:

a ω= b

совпадает с

a = a ω b

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

a |= b

совпадает с

a = a | b
1 голос
/ 20 декабря 2011

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

a = a | b
a |= b
...