Golang 通过字符串调用方法
package main
import (
"fmt"
"reflect"
)
type Student struct {
}
func (s *Student) Listen() {
fmt.Println("listen")
}
func main() {
student := Student{}
value := reflect.ValueOf(&student)
f := value.MethodByName("Listen")
f.Call([]reflect.Value{})
rf := reflect.ValueOf(&student)
//带参数调用方式
setNameMethod := rf.MethodByName("Listen")
args := []reflect.Value{reflect.ValueOf(param)} //构造一个类型为reflect.Value的切片
setNameMethod.Call(args) //返回Value类型
}

