Sobes.tech
Senior

В кой вариант на преобразуване на типа е възможна паника и коя конструкция позволява това?

sobes.tech AI

Отговор от AI

Паника може да възникне при преобразуване на тип (type assertion), ако реалният тип на стойността не съвпада с очаквания. Например:

var i interface{} = "низ"
// Опит за преобразуване към int ще предизвика паника
n := i.(int) // паника: преобразуване на интерфейс: interface {} е string, не int

За да избегнете паника, се използва конструкция с две връщани стойности — втората показва дали преобразуването е успешно:

n, ok := i.(int)
if !ok {
    // обработка на грешка при преобразуване
}

По този начин, безопасното твърдение за тип предотвратява паника и позволява правилно да се обработи ситуацията, когато типовете не съвпадат.