ORM库要用到, 记录一下.
文章目录
reflect.TypeOf() 获取对象类型
在Go语言中,使用reflect.TypeOf()
函数可以获得任意值的类型对象(reflect.Type
)
程序通过类型对象可以访问任意值的类型信息。
func reflectType(x interface{
}){
v := reflect.TypeOf( x )
fmt.Printf("type: %v\n",v )
}
func main(){
var a float32 = 3.14
reflectType( a ) // type: float32
var b int64 = 100
reflectType( b ) // type: int64
}
type name和type kind
type tk int64
var(
a *float32 //指针
b tk //自定义类型
by byte //类型别名
user = User{
"cl",20 }
)
type User struct {
Name string
Age int
}
func reflectType(x interface{
} ){
temp := reflect.TypeOf( x )
fmt.Printf("type: %v kind: %v\n", temp.Name(),temp.Kind() )
}
func main(){
reflectType( a )
reflectType( b )
reflectType( by ) // byte是官方定义的类型,所以输出和自定义的不一样
reflectType( user )
}
输出为
type: kind: ptr
type: tk kind: int64
type: uint8 kind: uint8
type: User kind