Senior
In quale opzione di conversione di tipo è possibile il panico e quale costruzione permette di evitarlo?
sobes.tech AI
Risposta dell'AI
Il panico può verificarsi durante l'asserzione di tipo (type assertion) se il tipo reale del valore non corrisponde a quello atteso. Ad esempio:
var i interface{} = "stringa"
// Tentare di convertire in int causerà un panico
n := i.(int) // panic: conversione di interfaccia: interface {} è stringa, non int
Per evitare il panico, si utilizza una costruzione con due valori di ritorno — il secondo indica se la conversione ha avuto successo:
n, ok := i.(int)
if !ok {
// gestione dell'errore di conversione
}
In questo modo, l'asserzione di tipo sicura evita il panico e permette di gestire correttamente la situazione quando i tipi non corrispondono.