Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goPmBoLp 90 of 350 menu
◀ ▶

Приоритет логических операторов в Go

Отрицание выполняется раньше связки И, а связка И - раньше связки ИЛИ. Знак ! относится к самому высокому приоритету среди этих трех, затем идет &&, затем ||.

Без скобок язык сначала применяет отрицание, потом связывает части через И, и только после этого собирает результат через ИЛИ. Так из одних и тех же литералов получается один определенный ответ.

Проверим порядок на примерах:

fmt.Println(!false && true) // true fmt.Println(true || false && false) // true

Во второй строке сначала считают false && false, получают false, затем true || false дает true. Первая строка сначала переворачивает false в true, затем связывает с true через И. Еще один порядок такой:

fmt.Println(!true || false) // false

Выведите результат выражения !false && false.

Выведите результат выражения false || true && true.

Дана переменная:

a := true

Выведите результат выражения !a && a.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить