Как проверить тип интерфейса?

Junior
1.1k просмотров
AFK Offer AI

Type assertion: v, ok := i.(ConcreteType) — безопасная проверка, ok будет false если тип не совпал. Без ok — паника при несовпадении.

Type switch для множества типов:

switch v := i.(type) {
case string:
    fmt.Println("string:", v)
case int:
    fmt.Println("int:", v)
default:
    fmt.Println("unknown")
}

reflect.TypeOf(i) — для рефлексии, когда типы неизвестны на этапе компиляции. Предпочитай type assertion/switch — они проверяются компилятором.

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

Как работает pprof?