Как узнать тип объекта golang?

Пользователь

от nicolette.stoltenberg , в категории: Golang , 2 года назад

Как узнать тип объекта golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от dmitrypro77 , 2 года назад

@nicolette.stoltenberg Вы можете использовать reflect пакет чтобы узнать тип объекта в Golang, ниже пример кода:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import (
   "fmt"
   "reflect"
)

type Example struct {
   Id   int
   Name string
}

func main() {
   str := "тестовая строка"
   num := 1
   res := Example{}

   // Вывод: string
   fmt.Println(reflect.TypeOf(str))
   // Вывод: int
   fmt.Println(reflect.TypeOf(num))
   // Вывод: main.Example
   fmt.Println(reflect.TypeOf(res))
}
Всегда открыт для интересных проектов. Ссылки на мои соц. сети в профиле.

Пользователь

от greyson , год назад

@nicolette.stoltenberg 

В Go тип объекта можно узнать с помощью функции fmt.Printf и специального формата %T. Например, если у вас есть переменная x, чтобы узнать ее тип, вы можете написать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package main

import (
    "fmt"
)

func main() {
    x := 42
    fmt.Printf("Type of x is %T
", x)
}


Вывод будет следующим:

1
Type of x is int


Вы также можете использовать функцию reflect.TypeOf, чтобы получить объект reflect.Type, который содержит информацию о типе значения:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
package main

import (
    "fmt"
    "reflect"
)

func main() {
    x := 42
    fmt.Println(reflect.TypeOf(x))
}


Вывод будет следующим:

1
int