
Баг: Забывать, что `case` не проваливается автоматически
Во многих языках case "проваливается" (fall through) по умолчанию - нужно писать break. В Go - наоборот. Каждый case сам по себе.
// ❌ ОШИБКА (привычка из других языков)
x := 2
switch x {
case 1:
fmt.Println("Один")
// В C++ здесь бы провалился в case 2
case 2:
fmt.Println("Два")
// И здесь бы тоже провалился
case 3:
fmt.Println("Три")
}
// В Go выведет только "Два"
// ✅ Если нужно провалиться - используй fallthrough явно
switch x {
case 1:
fmt.Println("Один")
fallthrough
case 2:
fmt.Println("Два")
fallthrough
case 3:
fmt.Println("Три")
}
// Выведет: Два\nТри (fallthrough только на следующий case)Загрузка...