Sobes.tech
Senior

În ce variant de conversie de tip este posibilă panică și ce construcție permite evitarea acesteia?

sobes.tech AI

Răspuns de la AI

Panică poate apărea în timpul asercției de tip (type assertion) dacă tipul real al valorii nu corespunde celui așteptat. De exemplu:

var i interface{} = "șir"
// Încercarea de a converti în int va provoca panică
n := i.(int) // panic: conversie de interfață: interface {} este string, nu int

Pentru a evita panica, se folosește o construcție cu două valori returnate — a doua indică dacă conversia a avut succes:

n, ok := i.(int)
if !ok {
    // tratarea erorii de conversie
}

Astfel, asercția de tip sigură previne panicarea și permite gestionarea corectă a situației când tipurile nu corespund.