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

Баг: Забывать, что `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)

Загрузка...