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

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

от jaclyn , в категории: Общие вопросы , 3 года назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

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

от dakota_wyman , 3 года назад

Вы можете использовать стандартную библиотеку reflect в Golang. Она вернет Вам тип переменной, пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
x := 1
y := float32(43.3)
z := "привет"

xt := reflect.TypeOf(x).Kind()
yt := reflect.TypeOf(y).Kind()
zt := reflect.TypeOf(z).Kind()

// int
fmt.Println(reflect.TypeOf(x))
// reflect.Kind: int
fmt.Printf("%T: %s\n", xt, xt)
// reflect.Kind: float32
fmt.Printf("%T: %s\n", yt, yt)
// reflect.Kind: string
fmt.Printf("%T: %s\n", zt, zt)


Если Вам нужно это для какой то внутренней проверке, то можно использовать reflect вот так:

1
2
3
if xt == reflect.Int {
    println("xt integer")
}


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

от porter.kertzmann , 6 месяцев назад

@jaclyn 

Именно так, как вы и привели в своем примере, можно использовать пакет reflect для определения типа переменной в Golang. Код, который вы привели, действительно показывает как получить тип переменной с помощью reflect.TypeOf().Kind().


Также, как вы упомянули, вы можете использовать типы из пакета reflect для выполнения дополнительных действий или проверок на основе типа переменной, например, в условиях if, switch и т.д.


С помощью пакета reflect в Golang вы можете детально исследовать структуру и типы данных, что пригодится в различных сценариях программирования на Golang.