Как работает type assertion?

Middle
744 просмотров
AFK Offer AI

Type assertion извлекает конкретный тип из интерфейсного значения. Пишешь val := i.(string) — получишь строку или панику если тип не совпал. Безопасная форма val, ok := i.(string) — ok будет false без паники. Под капотом Go проверяет type descriptor внутри интерфейса и сравнивает с запрошенным типом. Используется когда у тебя interface{} или error, а нужно добраться до конкретного типа для специфичной обработки.

Следующий вопрос

Как работает CPU profiling?