[Go关于反射] reflect包

参考自liwenzhou

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值