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类型 }