Senior
16
Конструкция type assertion — для чего нужна?
Компании, где спрашивали
Магнум
Ответ от нейросети
sobes.tech AI
Type assertion в Go используется для извлечения конкретного типа из интерфейсного значения. Поскольку интерфейс может содержать значение любого типа, type assertion позволяет получить доступ к этому значению с конкретным типом.
Синтаксис:
value, ok := interfaceValue.(ConcreteType)
value— значение с конкретным типомok— булево значение, указывающее, успешна ли была операция
Если ok равно false, значит значение не соответствует указанному типу, и попытка обращения без проверки приведёт к панике.
Пример:
var i interface{} = "hello"
s, ok := i.(string)
if ok {
fmt.Println("Строка:", s)
} else {
fmt.Println("Не строка")
}
Type assertion полезна для работы с интерфейсами, когда нужно получить конкретный тип для дальнейших операций.