Golang语言社区GoGolang 入门资料+笔记

go 反射执行指定方法

2021-03-31  本文已影响0人  五岁小孩

代码

type Student struct{
    Name string
    Age int
}
func (s *Student)SetName(name string){
    s.Name=name
}
func main(){
    var stu=Student{}
    v := reflect.ValueOf(stu)
    m := v.MethodByName("SetName")
    if m.String() == "<invalid Value>" {
        return errors.New("该方法不存在")
    }
    //调用对应的方法执行
    rs := m.Call(nil)
    if rs != nil && len(rs) > 0 {
        if rs[0].String() == "" {
            //无返回
            return
        }
        //返回值 rs[0].String()
    }
}
上一篇 下一篇

猜你喜欢

热点阅读