РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
1524 of 1593 menu

Метод reflect.Value.Type

Метод reflect.Value.Type возвращает reflect.Type, представляющий динамический тип значения, хранящегося в reflect.Value. Этот метод полезен, когда вам нужно получить информацию о типе переменной во время выполнения программы, например, имя типа, категорию (kind) или другие свойства типа.

Синтаксис

func (v Value) Type() Type

Пример

Давайте получим тип для целочисленной переменной:

package main import ( "fmt" "reflect" ) func main() { num := 42 val := reflect.ValueOf(num) typ := val.Type() fmt.Println(typ) fmt.Println(typ.Name()) fmt.Println(typ.Kind()) }

Результат выполнения кода:

"int" "int" "int"

Пример

Давайте получим тип для строковой переменной:

package main import ( "fmt" "reflect" ) func main() { str := "Hello World" val := reflect.ValueOf(str) typ := val.Type() fmt.Println(typ) fmt.Println(typ.Name()) fmt.Println(typ.Kind()) }

Результат выполнения кода:

"string" "string" "string"

Пример

Давайте получим тип для пользовательской структуры:

package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } func main() { p := Person{Name: "Alice", Age: 30} val := reflect.ValueOf(p) typ := val.Type() fmt.Println(typ) fmt.Println(typ.Name()) fmt.Println(typ.Kind()) }

Результат выполнения кода:

"main.Person" "Person" "struct"

Пример

Метод Type также работает с указателями:

package main import ( "fmt" "reflect" ) type Person struct { Name string Age int } func main() { p := &Person{Name: "Bob", Age: 25} val := reflect.ValueOf(p) typ := val.Type() fmt.Println(typ) fmt.Println(typ.Name()) fmt.Println(typ.Kind()) // Получаем тип элемента указателя elemType := typ.Elem() fmt.Println(elemType) fmt.Println(elemType.Name()) }

Результат выполнения кода:

"*main.Person" "" "ptr" "main.Person" "Person"

Смотрите также

  • функцию reflect.TypeOf,
    которая возвращает тип переменной без создания reflect.Value
  • функцию reflect.ValueOf,
    которая создает reflect.Value из переменной
  • метод reflect.Value.Kind,
    который возвращает категорию типа значения
  • метод reflect.Type.Kind,
    который возвращает категорию типа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить