package main import ( "fmt" "reflect" ) type FlyBird struct { Name string LifeExpectancy int } func (b *FlyBird) BirdFly(){ fmt.Println("bird fly") } func main(){ //实现一个FlyBird的指针变量 sparrow := &FlyBird{"Sparrow",3} //获取变量的反射元素 s := reflect.ValueOf(sparrow).Elem() //获取反射元素的类型 typeOfT := s.Type() //循环反射元素 for i:=0;i<s.NumField();i++{ //单个反射元素 f :=s.Field(i) //打印反射元素的属性名称 类型 和值 fmt.Printf("%d:%s %s = %v\n", i, typeOfT.Field(i).Name, f.Type(), f.Interface()) } }