
Баг: Сравнение разных типов в `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("Равны") // Ок
}Загрузка...