Sobes.tech
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 {
    // обработка на грешка при преобразуване
}

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