🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
## 实例 ~~~ package main import ( "fmt" "reflect" ) //结构体 type User struct { Id int Name string Age int } //绑定方法 func (u User) Hello() { fmt.Println("Hello User!") } //反射操作 func Info(o interface{}) { //获取目标对象信息 t := reflect.TypeOf(o) //获取Name,也就是对象类型 fmt.Println("传入的对象类型:", t.Name()) //获取对象的值信息 v := reflect.ValueOf(o) fmt.Println("字段:===========================") //遍历出所有字段 //NumField()获取对象有几个字段 for i := 0; i < t.NumField(); i++ { //取每个字段 f := t.Field(i) //通过interface()可以取具体字段对应的值 val := v.Field(i).Interface() fmt.Printf("%s:%v=%v\n", f.Name, f.Type, val) } fmt.Println("方法:============================") for i := 0; i < t.NumMethod(); i++ { m := t.Method(i) fmt.Printf("%s:%v\n", m.Name, m.Type) } } func main() { u := User{1, "Mr.Sun", 18} Info(u) } ~~~