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ú.