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

Баг: Переменная в `if` живет только внутри

Очень частая ошибка новичков - попытаться использовать переменную, объявленную в if, снаружи.

// ❌ ОШИБКА
if x := 10; x > 5 {
    fmt.Println("x внутри if:", x)
}
fmt.Println(x)  // Ошибка! x не определена вне if
// ✅ ПРАВИЛЬНО (объяви x до if)
x := 10
if x > 5 {
    fmt.Println("x больше 5")
}
fmt.Println("А теперь x видно:", x)

То же самое с else:

// ❌ ОШИБКА
if x := 10; x > 5 {
    fmt.Println("больше")
} else {
    fmt.Println("меньше или равно:", x)  // x здесь еще видно!
}
fmt.Println(x)  // А здесь уже нет - ошибка!
// ✅ ПРАВИЛЬНО (если нужно снаружи - объявляем заранее)
x := 10
if x > 5 {
    fmt.Println("больше")
} else {
    fmt.Println("меньше или равно")
}
fmt.Println("x все еще здесь:", x)

Загрузка...