我有一个在Go中使用接口定义RPC样式接口的想法。因此,对于给定的服务,我可能会创建一个像这样的接口:type MyService interface{ Login(username, password string) (sessionId int, err error) HelloWorld(sessionId int) (hi string, err error)}我想做的是使用反射来实现该接口,将方法调用转换为RPC调用,将输入参数编组,然后将结果编组回方法的输出。我知道,如果可以获得输入参数的[] interface {}接口,则可以使用反射进行服务调用。但是,我看不到有任何方法可以使用反射来动态创建一个值,该值将通过调用使用反射的函数来实现接口。有人知道即使使用不安全的方法也可以做到这一点吗?
3 回答
千巷猫影
TA贡献1829条经验 获得超7个赞
您不能通过反射使用附加方法创建类型,以实例化该类型的对象。
通过该unsafe
软件包,您可能会遇到很多黑客攻击。但是即使那样,这仍然是一个巨大的痛苦。
如果您详细说明了您要解决的问题,那么社区可以提出其他解决方案。
编辑(2015年7月23日):从Go 1.5开始,还有reflect.FuncOf
和reflect.MakeFunc
,它们可以完全满足您的需求。
- 3 回答
- 0 关注
- 198 浏览
添加回答
举报
0/150
提交
取消