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

Баг: Сравнение разных типов в `case`

Go не приводит типы автоматически. Даже int и int32 - разные типы.

// ❌ ОШИБКА
var x int64 = 42
var y int = 42
switch x {
case y:   // Ошибка компиляции: mismatched types int64 and int
}

// Даже если числа одинаковые!
// ✅ ПРАВИЛЬНО - привести к одному типу
switch x {
case int64(y):
    fmt.Println("Равны")
}

// Или если x и y - однотипные:
var a int = 42
var b int = 42
switch a {
case b:
    fmt.Println("Равны") // Ок
}

Загрузка...