Группировка в Go
Скобки задают, какую связку считать первой. Выражение внутри круглых скобок вычисляют раньше, чем части снаружи. Так из тех же литералов можно получить другой логический ответ.
Без скобок действует приоритет знаков. Со скобками можно заставить сначала посчитать связку ИЛИ, а потом применить И к результату, или наоборот.
Сравним два похожих выражения:
fmt.Println(true || false && false) // true
fmt.Println((true || false) && false) // false
Во втором случае сначала true || false дает
true, затем true && false дает false.
Еще два выражения со скобками:
fmt.Println(false && (true || true))
fmt.Println((!false) || false)
Выведите результат выражения
(true && false) || true.
Выведите результат выражения
true && (false || true).
Дана переменная:
s := false
Выведите результат выражения (!s) && s.