Сайт работает в тестовом режиме - все замечания, предложения и информацию о найденных ошибках направляйте, пожалуйста, в Telegram-группу
Курс в процессе наполнения. Полный курс доступен на Степике

Баг: Ошибка приоритета со сравнениями

Сравнения имеют высший приоритет, но иногда нужно сгруппировать по-другому.

// Ты хочешь: проверить, что a находится между 10 и 20
a := 15
// ❌ ОШИБКА (так в математике можно, в Go - нет)
if 10 < a < 20 {   // Не скомпилируется! Нельзя цепочкой
// ✅ ПРАВИЛЬНО
if 10 < a && a < 20 {
    fmt.Println("a в интервале")
}

Другой пример - смешивание с && и ||:

x := 5
y := 10
// Ты хочешь: x равен 5 ИЛИ x равен 6, и при этом y больше 5
// ❌ ОШИБКА (логическая)
if x == 5 || x == 6 && y > 5 {  
    // Из-за приоритета: x == 5 || (x == 6 && y > 5)
    // При x=5, y=1: 5==5 || ... = true, хотя y не больше 5!
}
// ✅ ПРАВИЛЬНО (скобки)
if (x == 5 || x == 6) && y > 5 {
    fmt.Println("Все условия выполнены")
}

Загрузка...