
Баг: Переменная в `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)Загрузка...