Назад к вопросам
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 {
// обработка ошибки преобразования
}
Таким образом, безопасное утверждение типа позволяет избежать паники и корректно обработать ситуацию, когда тип не совпадает.