golang 经典案例总结

【golang 经典案例总结】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 }

    推荐阅读