Senior
В кой вариант на преобразуване на типа е възможна паника и коя конструкция позволява това?
sobes.tech AI
Отговор от AI
Паника може да възникне при преобразуване на тип (type assertion), ако реалният тип на стойността не съвпада с очаквания. Например:
var i interface{} = "низ"
// Опит за преобразуване към int ще предизвика паника
n := i.(int) // паника: преобразуване на интерфейс: interface {} е string, не int
За да избегнете паника, се използва конструкция с две връщани стойности — втората показва дали преобразуването е успешно:
n, ok := i.(int)
if !ok {
// обработка на грешка при преобразуване
}
По този начин, безопасното твърдение за тип предотвратява паника и позволява правилно да се обработи ситуацията, когато типовете не съвпадат.