golang reflect problem

golang reflect problem

package main

import (
    "fmt"
    "reflect"
)

type t1 struct{}

func (t *t1) Name() string {
    return "tbl_t1"
}
func main() {
    m := t1{}
    rv := reflect.ValueOf(m)
    fn := rv.MethodByName("Name")
    fmt.Println(fn)
    //<invalid reflect.Value>

    rv2 := reflect.New(rv.Type())
    fn = rv2.MethodByName("Name")
    fmt.Println(fn)
    //ptr
    a, _ := rv.Type().MethodByName("Name")
    fmt.Println(a.Func)
}

发表新评论