Golang 通过字符串调用方法

作者: adm 分类: go 发布时间: 2022-08-19
package main

import (
	"fmt"
	"reflect"
)

type Student struct {
}

func (s *Student) Listen() {
	fmt.Println("listen")
}

func main() {
	student := Student{}
	value := reflect.ValueOf(&student)
	f := value.MethodByName("Listen")
	f.Call([]reflect.Value{})
 

       rf := reflect.ValueOf(&student)

	//带参数调用方式
	setNameMethod := rf.MethodByName("Listen")
	args := []reflect.Value{reflect.ValueOf(param)} //构造一个类型为reflect.Value的切片
	setNameMethod.Call(args)                        //返回Value类型
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!