Senior
U kojoj opciji konverzije tipa je moguća panika i koja konstrukcija to omogućava?
sobes.tech АИ
Одговор од АИ
Паника може да се случи при претпоставяне на тип (type assertion) ако реалният тип на стойността не съвпада с очаквания. Например:
var i interface{} = "низа"
// Опит за преобразуване към int ще предизвика паника
n := i.(int) // паника: преобразуване на интерфейс: interface {} е string, не int
За да избегнете паника, се използва конструкция с две стойности, които се връщат — втората показва дали преобразуването е успешно:
n, ok := i.(int)
if !ok {
// обработка на грешка при преобразуване
}
Този начин, безопасното твърдение за тип, предотвратява паника и позволява правилно да се обработи ситуацията, когато типовете не съвпадат.