我们有:
type A struct {
Name string
Value string
}
type B struct {
//
First *A
Second A
}
Run Code Online (Sandbox Code Playgroud)
首先:什么它更有效B,使用*A或A?
第二:实例化时B我会使用b := &B{ ... },因而有一个指针B.所有具有B接收器func (*B) ...用作签名的功能,因此仅在指针上操作.既然我总是有一个指针B,那真的很重要B吗?如果我总是使用指针,无论哪个字段B都有,我总是传递指针,B并且Second A在传递时永远不会复制值*B.或者我错过了什么?
没有一个正确的答案.它总是取决于您的用例.
一些指导:
A"大" 时使用指针B不应该允许编辑时避免使用指针A你的第二个陈述是正确的.但是当你有很多B使用指针的实例时,效率要高得多(如果结构A明显大于指针的大小).
如果您有疑问,请根据用例进行测量,然后确定最佳解决方案.