Где в Ruby использовать операции NOT, AND, OR, XOR для Fixnum или Bignum?

Просто интересно, есть ли у кого-нибудь реальные примеры или известно, когда вы можете использовать операторы NOT, AND, OR, XOR, ‹‹, >> в Ruby.

Я программирую в течение 4 лет и никогда не сталкивался с необходимостью использовать что-либо из этого, задаваясь вопросом, насколько распространено фактическое использование, и должен ли я полностью понять это.

Спасибо, -J


person Jason    schedule 14.05.2010    source источник


Ответы (2)


xor (он же ^), << и >> чаще используются в низкоуровневом программировании. Программист на C будет хорошо знаком с тем, что они делают. В настоящее время я пишу эмулятор на Ruby и часто использую << и >> в ядре 6502 из-за таких вещей, как размер слова 1 байт, но 2 байта pc. Например, вам нужно выполнить битовый сдвиг, чтобы сохранить компьютер в стеке.

not, and и or являются вариантами !, && и || соответственно. Они работают одинаково, но имеют «более слабую привязку» к окружающим их переменным. Их использование (по крайней мере, на практике) состоит в том, чтобы разрешить запись выражений с меньшим количеством скобок. Я считаю, что Rails полностью запрещает использование этих операторов в своей кодовой базе из-за непонимания того, как они работают.

person x1a4    schedule 14.05.2010
comment
Очень интересно, я думаю, что пока пропущу это... если мне это понадобится в проекте, тогда я вернусь к этому материалу. Спасибо - person Jason; 14.05.2010

В ответ на другой вопрос, мне пришлось немного повозиться, чтобы обойти отсутствующую функцию в паре API String#unpack/Array#pack. Он использует сдвиг влево (<<) и побитовое ИЛИ (|).

person Jörg W Mittag    schedule 14.05.2010