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

本文来自:开源中国博客

感谢作者:Mocos

查看原文:golang 反射

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。