Как проверить тип переменной в runtime?

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

reflect.TypeOf(v) — возвращает reflect.Type с полной информацией о типе. fmt.Sprintf("%T", v) — строковое имя типа.

Type switch — самый идиоматичный способ:

switch v := x.(type) {
case int:    // ...
case string: // ...
}

reflect.ValueOf(v).Kind() — базовый вид (struct, ptr, slice...). Рефлексия медленная — избегай в горячем коде. Используй type assertion когда знаешь возможные типы, reflect — когда работаешь с произвольными типами (сериализация, ORM).

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

Что такое init функция?