golang 如何查看一个对象下有哪些方法和属性?

如题,刚刚上手golang 导入一个第三方包,然后返回生成一个对象,这个对象println 说是一个map 但是我取不出map下的key,所以我想看看这个map下都有哪些属性和方法。源码查过 没有查到。特此求助

阅读 5.8k
1 个回答
type User struct {
    Name string
}

func (u *User) A() {
    fmt.Println("hello")
}
func (u *User) B(name string) {
    fmt.Printf("Shake hand with %s\n", name)
}

func TestReflect(t *testing.T) {
    u := &User{Name: "xxxx"}
    value := reflect.ValueOf(u)
    typ := value.Type()
    for i := 0; i < value.NumMethod(); i++ {
        fmt.Println(fmt.Sprintf("method[%d]%s and type is %v", i, typ.Method(i).Name, typ.Method(i).Type))
    }
}

使用reflect 能得到你想要的,试一试吧。
好好看看文档。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏