我对Go语言还很陌生,而且只有很少的C/C++背景,所以自然而然地我在使用指针和不使用指针的时候遇到了困难。虽然这个问题可能被认为是开放性的,但我想知道一些关于何时返回结构体和何时返回指针的指导方针,(同样地,何时接受结构体/指针作为参数)。
从我的猜测来看,以下陈述是正确的:
- 结构体通过值传递进函数。也就是说,在将其传递到函数中时会创建一个结构体的副本。
- 如果我想通过引用传递结构体,则应在函数定义中使用指针参数,并在调用函数时使用取地址操作符。
- 我之所以想要通过引用传递结构体,是因为要么我传递的结构体很大,通过值传递会对内存产生负担(不太可能),要么我想对我传入的副本进行更改(更有可能)。
- 作为3.的必然结果,除非有以上传递引用的理由,否则应该通过值传递。
我的假设是正确的吗?还是我在指针方面存在误解?