Sobes.tech
Senior

V jaké variantě konverze typu je možná panika a jaká konstrukce ji umožňuje?

sobes.tech AI

Odpověď od AI

Panika může nastat při assertaci typu (type assertion), pokud skutečný typ hodnoty neodpovídá očekávanému. Například:

var i interface{} = "řetězec"
// Pokus o převod na int způsobí paniku
n := i.(int) // panika: konverze rozhraní: interface {} je string, nikoli int

Abychom se vyhnuli panice, používá se konstrukce se dvěma hodnotami vrácenými — druhá ukazuje, zda převod proběhl úspěšně:

n, ok := i.(int)
if !ok {
    // zpracování chyby převodu
}

Tímto způsobem bezpečná assertion typu zabrání panice a umožní správně zpracovat situaci, kdy se typy neshodují.