为了账号安全,请及时绑定邮箱和手机立即绑定

Gorilla xmlrpc 的小写方法

Gorilla xmlrpc 的小写方法

Go
烙印99 2021-09-27 18:27:53
我正在使用Gorilla XMLRPC。根据示例,func (h *HelloService) Say(r     *http.Request,                            args  *struct{Who string},                            reply *struct{Message string}) error {    reply.Message = "Hello, " + args.Who + "!"    return nil}并RPC.RegisterService(new(HelloService), "")为我提供服务HelloService.Say()。我想有helloService.say()。我能够通过将 register 函数修改为RPC.RegisterService(new(HelloService), "helloService"). 但我无法导出小写方法。我知道 golang 只允许导出大写方法。那么小写方法有什么解决方法吗?
查看完整描述

2 回答

?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

我今天遇到了同样的问题。几年前,这个问题在 gorilla-xmlrpc 中得到了解决。现在您可以在 xmlrpc 编解码器上注册别名:

myCodec := xml.NewCodec()
myCodec.RegisterAlias("MyType.lowerCaseMethod", "MyType.UpperCaseMethod")

带有 eg 的输入<methodName>MyType.lowerCaseMethod</methodName>将按预期识别。

该函数在godoc中有说明,但在项目README或相关示例中未提及。


查看完整回答
反对 回复 2021-09-27
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

我认为第一个问题是“为什么需要[小写]”说,第二个问题需要是,如果需要那样,为什么要使用 Go?

大写方法和属性是导出的,小写方法和属性是私有的,这是一个约定。


查看完整回答
反对 回复 2021-09-27
  • 2 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信