1.反射之用字符串函数名调用函数
package mainimport ( "fmt" "reflect")/**通过反射获取它对应的函数,而后通过call来调用 */func main() { var animal = Animal{} val := reflect.ValueOf(&animal) f := val.MethodByName("Eat") f.Call([]reflect.Value{}) //传参 f3 := val.MethodByName("SetName") params := make([]reflect.Value,1) params[0] = reflect.ValueOf("旺财") f3.Call(params) f2 := val.MethodByName("GetName") f2.Call([]reflect.Value{})}type Animal struct { name string}func (e *Animal) Eat() { fmt.Println("eat test")}func (e *Animal) SetName(name string) { e.name = name}func (e *Animal) GetName() string { fmt.Println("name",e.name) return e.name}