Sobes.tech
Назад к вопросам
Senior
3

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

Компании, где спрашивали
Flant

Ответ от нейросети

sobes.tech AI

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

var i interface{} = "строка"
// Попытка привести к int вызовет панику
n := i.(int) // panic: interface conversion: interface {} is string, not int

Чтобы избежать паники, используется конструкция с двумя возвращаемыми значениями — второе указывает, успешно ли прошло преобразование:

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

Таким образом, безопасное утверждение типа позволяет избежать паники и корректно обработать ситуацию, когда тип не совпадает.