Sobes.tech
Senior

V ktorej možnosti konverzie typu je možná panika a aká konštrukcia to umožňuje?

sobes.tech AI

Odpoveď od AI

Panika sa môže vyskytnúť pri assertovaní typu (type assertion), ak skutočný typ hodnoty nezodpovedá očakávanému. Napríklad:

var i interface{} = "reťazec"
// Pokus o konverziu na int spôsobí paniku
n := i.(int) // panika: konverzia rozhrania: interface {} je string, nie int

Aby ste sa vyhli panike, používate konštrukciu s dvomi hodnotami — druhá ukazuje, či konverzia bola úspešná:

n, ok := i.(int)
if !ok {
    // spracovanie chyby konverzie
}

Týmto spôsobom bezpečné tvrdenie o type zabraňuje panike a umožňuje správne spracovať situáciu, keď sa typy nezhodujú.