大佬教程收集整理的这篇文章主要介绍了golang RPC调用中的参数,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
func (self Handler) GetName(int,reply *StructObj) { }
并在呼叫方
var reply StructObj client.Call("Handler.GetName",&reply)
因为我不需要GetName方法中的第一个参数,所以我省略了它的名字,
但是,我得到了:
gob: type mismatch in decoder: want struct type
我将GetName方法更改为GetName(id int,reply * StructObj)并且它可以工作.
我想知道为什么会这样?
package main import "fmt" func f(int,x String) { fmt.Println("int is:",int) fmt.Println("x is:",X) } func main() { f("foo","bar") }
int is: foo x is: bar
是的,这有点令人费解.我从未听过具体的思路解释,但也许他们保留了内置的类型名称,因此他们可以在以后引入新的内置类型而不会破坏已经存在的代码.
无论如何,这意味着你的第一个函数定义实际上并不接受int和* StructObj,而是一个名为int的* StructObj和另一个名为reply的接受.因此来自net / rpc的错误消息实际上意味着客户端在预期* StructObj时传递了0.很有趣.
以上是大佬教程为你收集整理的golang RPC调用中的参数全部内容,希望文章能够帮你解决golang RPC调用中的参数所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。