Sobes.tech
Senior
17

Конструкция type assertion — для чего нужна?

Companies where asked
Магнум

Answer from AI

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 полезна для работы с интерфейсами, когда нужно получить конкретный тип для дальнейших операций.