package main
import (
"fmt"
"reflect"
)
func main() {
ReflectFunction()
}
func ReflectFunction() {
test1 := func(v1,v2 int){
fmt.Println(v1,v2)
}
test2 := func(v1,v2 int,s string) {
fmt.Println(v1,v2,s)
}
bridge := func(test interface{},args ...interface{}) {
function := reflect.ValueOf(test)
num := len(args)
var param = make([]reflect.Value,num)
for i := 0; i < num; i++ {
param[i] = reflect.ValueOf(args[i])
}
function.Call(param)
}
bridge(test1,1,2)
bridge(test2,1,2,"test2")
}
golang利用反射机制实现函数适配器调度模式
最新推荐文章于 2022-08-12 15:35:11 发布