go rpc 的参数。他们啥时候应该是指针?
Posted
技术标签:
【中文标题】go rpc 的参数。他们啥时候应该是指针?【英文标题】:Arguments of go rpc. When should they be pointer?go rpc 的参数。他们什么时候应该是指针? 【发布时间】:2021-11-29 02:01:36 【问题描述】:我已阅读 go rpc documentation,并找出 4 个条件之一:
方法的第二个参数是一个指针。
下面的方法展示了使用go rpc的正确方法,因此第二个参数是一个指针*T2
。
func (t *T) MethodName(argType T1, replyType *T2) error
????????????但是,这个标准有什么理由吗?为什么应该是指针?
阅读更多示例后,发现在大多数情况下,连第一个参数都是指针!
func (t *Arith) Multiply(args *Args, reply *int) error
*reply = args.A * args.B
return nil
我知道指针类型和普通类型的区别,但是在rpc上下文中我不确定。 ????????????
【问题讨论】:
【参考方案1】:Reply 必须是一个指针,以便函数可以为其赋值。
和这里的例子类似:https://gobyexample.com/pointers
【讨论】:
非常感谢!?我知道指针类型和普通类型之间的区别,但我不确定在rpc上下文中。以上是关于go rpc 的参数。他们啥时候应该是指针?的主要内容,如果未能解决你的问题,请参考以下文章