go rpc 的参数。他们啥时候应该是指针?

     2023-03-29     232

关键词:

【中文标题】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上下文中。

我啥时候应该明确使用 `this` 指针?

】我啥时候应该明确使用`this`指针?【英文标题】:WhenshouldImakeexplicituseofthe`this`pointer?我什么时候应该明确使用`this`指针?【发布时间】:2010-11-0220:41:43【问题描述】:我什么时候应该明确写this->member上课?【问题讨论】... 查看详情

C++ - 我啥时候应该在类中使用指针成员

】C++-我啥时候应该在类中使用指针成员【英文标题】:C++-whenshouldIuseapointermemberinaclassC++-我什么时候应该在类中使用指针成员【发布时间】:2010-11-1314:56:42【问题描述】:在学习C++(和Direct3D,但那是前段时间)时让我感到困惑... 查看详情

mfc CEdit 啥时候应该进行验证?

...)进行验证?背景:我被调到我们公司的一个新开发组,他们的做法是按Enter,那时他们在CEdit(mfc对话框)上进行验证。而我来自.net,特别是来自WinForms,那里 查看详情

我们啥时候应该为组件实现带有 IContainer 参数的构造函数?

】我们啥时候应该为组件实现带有IContainer参数的构造函数?【英文标题】:WhenshouldweimplementaconstructorwiththeIContainerparameterforaComponent?我们什么时候应该为组件实现带有IContainer参数的构造函数?【发布时间】:2021-05-1503:01:42【问题... 查看详情

传参数给函数,啥时候需要取地址符?

编程时遇到有的函数如果传参数时不加取地址符&就会出问题遇到那种要改变参数值的函数时有点困惑,好像有时候不加也可以,有时候必须加。我知道的有个swap函数,不加&的话是不能改变参数值的。但具体什么时候需要加,什... 查看详情

go语言make和new关键字的区别(代码片段)

...funcnew(Type)*Type从上面的代码可以看出,new函数只接受一个参数,这个参数是一个类型,并且返回一个指向该类型内存地址的指针。同时new函数会把分配的内存置为零,也就是类型的零值。    makemake也是用于内存分配的,但... 查看详情

我啥时候应该传递“T* const&”类型的指针?

】我啥时候应该传递“T*const&”类型的指针?【英文标题】:WhenshouldIpass"T*const&"typeofpointer?我什么时候应该传递“T*const&”类型的指针?【发布时间】:2011-10-0122:16:46【问题描述】:当我打算更改函数内的指向值... 查看详情

在数据库中,啥时候应该存储派生数据?

...列中,而不是每次需要时都计算?例如,假设您的用户因他们的问题而获得支持。您在其个人资料上显示用户的声誉。当用户被点赞时,您应该增加他们的 查看详情

在 Go 中使用指针有啥意义?

...2405:20:54【问题描述】:我知道Go中的指针允许改变函数的参数,但如果它们只采用引用(使用适当的const或mutable限定符),那岂不是更简单。现在我们有了指针和一些内置类型,如地图和通道,隐式通过引用传递。我是否遗漏了... 查看详情

我们啥时候应该使用 save() 的高级参数?

】我们啥时候应该使用save()的高级参数?【英文标题】:Whenshouldweusetheadvancedparametersofsave()?我们什么时候应该使用save()的高级参数?【发布时间】:2017-10-1520:30:30【问题描述】:通常我们只使用inst.save()将实例保存到数据库中,... 查看详情

我如何告诉 PyCharm 参数应该是啥类型?

】我如何告诉PyCharm参数应该是啥类型?【英文标题】:HowcanItellPyCharmwhattypeaparameterisexpectedtobe?我如何告诉PyCharm参数应该是什么类型?【发布时间】:2011-09-1305:05:59【问题描述】:当涉及到构造函数、赋值和方法调用时,PyCharmIDE... 查看详情

函子我啥时候应该使用它们它们的预期用途是啥[关闭]

...布时间】:2010-11-0117:28:52【问题描述】:我似乎无法绕开他们。据我了解,它是在为类动态添加逻辑。框架内的类是否为此做好了准备?我为什么要扩展类并在扩展中添加功能。我将可以在全球范围内访问, 查看详情

我啥时候应该通过引用传递向量参数而不是按值传递向量参数?

】我啥时候应该通过引用传递向量参数而不是按值传递向量参数?【英文标题】:whenshouldipassavectorparameterbyreferenceversuspassingonebyvalue?我什么时候应该通过引用传递向量参数而不是按值传递向量参数?【发布时间】:2018-10-2400:22:48... 查看详情

c语言中,函数的形参啥时候必须是指针

情况1需要读入的数据是比较大的数据,使用指针作为参数可以节省堆栈比如定义1个结构体typedefstructtestcharbuffer1[10000];charbuffer2[10000];//后面还有一大堆成员test_ts;voidFunc1(test_tst1)//函数体是对t1成员进行Read处理voidFunc2(test_ts*t1)//函数... 查看详情

GAE Go Json-RPC 调用示例

...种方式调用rpc.Client.Dial,但我不明白“网络”和“地址”参数应该是什么。谁能提供一个示例工作代码来演示如何在Go中使用Json 查看详情

Go 中的“值语义”和“指针语义”是啥意思?

】Go中的“值语义”和“指针语义”是啥意思?【英文标题】:Whatdo"valuesemantics’"and"pointersemantics"meaninGo?Go中的“值语义”和“指针语义”是什么意思?【发布时间】:2018-12-1805:55:37【问题描述】:值语义和指针... 查看详情

你啥时候想在 C++ 中使用指针和值?

...非常相似,因为您将内存地址传递给值。所以我觉得我对他们有了很好的了解。我也明白这些变量是存储在堆上的。但是,我发现还有另一种方 查看详情

我啥时候应该使用 PHP 会话、浏览器本地存储和 JavaScript 对象参数?

...啥时候应该使用PHP会话、浏览器本地存储和JavaScript对象参数?【英文标题】:WhenshouldIusePHPSessionvsBrowserLocalStoragevsJavaScriptObjectParameters?我什么时候应该使用PHP会话、浏览器本地存储和JavaScript对象参数?【发布时间】:2014-08-1718:3... 查看详情