超灬超  
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())
	}
}

  

posted on 2021-04-13 14:14  超灬超  阅读(37)  评论(0编辑  收藏  举报