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)
}