golang 反射

package main

import (
	"fmt"
	"reflect"
)

type Person struct{}

func (p *Person) Run() {
	fmt.Println("person running")
}

func doit(object interface{}, method interface{}) {
	v := reflect.ValueOf(object)
	f := reflect.ValueOf(method)
	f.Call([]reflect.Value{v})
}

func main() {
	p := new(Person)
	doit(p, (*Person).Run)
}

你可能感兴趣的:(reflect,Go,golang)