Вы можете использовать стандартную библиотеку 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") } |
@jaclyn
Именно так, как вы и привели в своем примере, можно использовать пакет reflect для определения типа переменной в Golang. Код, который вы привели, действительно показывает как получить тип переменной с помощью reflect.TypeOf().Kind().
Также, как вы упомянули, вы можете использовать типы из пакета reflect для выполнения дополнительных действий или проверок на основе типа переменной, например, в условиях if, switch и т.д.
С помощью пакета reflect в Golang вы можете детально исследовать структуру и типы данных, что пригодится в различных сценариях программирования на Golang.