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

何时使用指针

何时使用指针

Go
慕娘9325324 2021-11-29 19:18:33
我是 Go 语言的新手,并且只有很少的 C/C++ 背景,所以我很自然地在思考何时使用指针和何时不使用指针的想法。尽管这个问题可能被认为是开放式的,但我想知道关于何时返回结构和何时返回指针的一些指导原则(以及何时接受结构/指针作为参数)。据我所知,以下陈述是正确的:结构按值传递给函数。也就是说,在将结构传递给函数时,会对其进行复制。如果我想通过引用传递结构,那么我会在函数定义中使用指针参数,并在调用函数时使用 addressof 运算符。我想通过引用传递结构的原因是因为我传递的结构很大,并且按值传递它会占用内存(不太可能)或者如果我想对复制我传入的(更有可能)。作为 3.) 的推论,我应该通过值传递,除非我有上述原因之一通过引用传递。我的假设正确吗?还是我错过了指针上的标记?
查看完整描述

1 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

你的假设是正确的。关于 #3,Go 是并发语言,在 goroutine 中通过引用传递使它们都读取相同的结构,这是安全的,但也会使它们修改相同的结构,这是危险的。


查看完整回答
反对 回复 2021-11-29
  • 1 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

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