Golang:何时使用指针[重复]

前端之家收集整理的这篇文章主要介绍了Golang:何时使用指针[重复]前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
参见英文答案 > Pointers vs. values in parameters and return values1个答案我是Go语言的新手,并且只有很少的C / C背景,所以我很自然地想到何时使用指针以及何时不使用指针。虽然这个问题可能被认为是开放式的,但我想知道何时返回结构以及何时返回指针的一些指导原则(等同于何时接受结构/指针作为参数)。

根据我的猜测,以下陈述成立:

> struct通过值传递给函数。也就是说,在将结构传递给函数时会生成结构的副本。
>如果我想通过引用传递结构,那么我会在函数定义中使用指针参数,并在调用函数时使用addressof运算符。
>我想要通过引用传递结构的原因是因为我传入的结构要么很大,而且要对内存征税以使其按值传递(不太可能)或者如果我想对其进行更改我传递的副本(更有可能)。
>作为3.)的推论,我应该通过值,除非我有上述原因之一通过引用传递。

我的假设是否正确?或者我错过了指针上的标记

你的假设是正确的。关于#3,Go是并发语言并且在goroutines中通过引用传递使它们都读取相同的安全结构,但也使它们修改相同的结构是危险的。
原文链接:https://www.f2er.com/go/187046.html

猜你在找的Go相关文章