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

Функция reflect.TypeOf

Функция reflect.TypeOf позволяет получить информацию о типе переменной во время выполнения программы. Она принимает один параметр - интерфейсную переменную любого типа, а возвращает объект reflect.Type, который содержит полную информацию о типе переданного значения. Эта функция является точкой входа в мир рефлексии в Go.

Синтаксис

reflect.TypeOf(i interface{}) reflect.Type

Пример "sect"

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

package main import ( "fmt" "reflect" ) func main() { res := reflect.TypeOf("abcde") fmt.Println(res) }

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

"string"

Пример "sect"

Получим тип целого числа:

package main import ( "fmt" "reflect" ) func main() { res := reflect.TypeOf(42) fmt.Println(res) }

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

"int"

Пример "sect"

Получим тип слайса строк:

package main import ( "fmt" "reflect" ) func main() { res := reflect.TypeOf([]string{"a", "b", "c", "d", "e"}) fmt.Println(res) }

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

"[]string"

Пример "sect"

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

package main import ( "fmt" "reflect" ) type User struct { Name string Age int } func main() { user := User{Name: "John", Age: 30} res := reflect.TypeOf(user) fmt.Println(res) }

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

"main.User"

Пример "sect"

Получим тип указателя на строку:

package main import ( "fmt" "reflect" ) func main() { str := "abcde" ptr := &str res := reflect.TypeOf(ptr) fmt.Println(res) }

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

"*string"

Пример "sect"

Получим тип нулевого значения интерфейса:

package main import ( "fmt" "reflect" ) func main() { var i interface{} res := reflect.TypeOf(i) fmt.Println(res) }

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

"<nil>"

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

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