Go 反射调用方法详解:用 reflect 包动态执行指定函数
为什么需要反射调用方法
在日常开发中,绝大多数函数调用都是在编译期就确定好的。但有一些场景,我们只能在运行时才知道要调用哪个方法,比如:
- 根据配置文件或请求参数,动态分发到不同的处理函数
- 编写通用的 RPC / 插件框架,按方法名路由到对应的 handler
- 单元测试中批量调用结构体的所有导出方法做覆盖验证
Go 标准库的 reflect 包提供了 MethodByName 这个能力,让我们可以通过字符串名称找到并执行目标方法。下面从最简单的例子开始,一步步把这件事讲清楚。