Sobes.tech
Senior

Em qual opção de conversão de tipo é possível pânico e qual construção permite evitá-lo?

sobes.tech IA

Resposta da IA

O pânico pode ocorrer durante a asserção de tipo (type assertion) se o tipo real do valor não corresponder ao esperado. Por exemplo:

var i interface{} = "string"
// Tentar converter para int causará pânico
n := i.(int) // pânico: conversão de interface: interface {} é string, não int

Para evitar o pânico, usa-se uma construção com dois valores de retorno — o segundo indica se a conversão foi bem-sucedida:

n, ok := i.(int)
if !ok {
    // tratamento do erro de conversão
}

Assim, a asserção de tipo segura evita o pânico e permite tratar corretamente a situação quando os tipos não coincidem.