В Ruby є два оператори логічного "і" - && і and. На перший погляд вони схожі, але мають різний пріоритет виконання.
&& має високий пріоритет, тому його зазвичай використовують для логічних виразів, умов і циклів.
and має низький пріоритет, тому його часто використовують для контрольного потоку, коли потрібно послідовно виконати кілька дій.
Приклад з &&:
result = true && false # спочатку обчислюється true && false => false # result => false
Приклад з and:
result = true and false # Ruby читає як (result = true) and false # спочатку виконується присвоєння result = true # потім виконується логічне і з false, але це не змінює змінну result result # => true
Коли і що використовувати?
- Використовуй && для логіки та умов.
- Використовуй and для послідовного виконання дій (control flow), наприклад return true and log_success. Але краще й цього не робити. Бо трохи можна заплутатись.
Пріоритет визначає порядок обчислення, а не результат логічної операції сам по собі.
Цей допис поки що не має жодних доповнень від автора/ки.