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.