当你写
obj := *p
您正在复制
p(
*dereferences
p)指向的struct的值。它类似于:
var obj me = *p
所以
obj是一个类型的新变量
me,被初始化为的值
*p。这将导致
obj具有不同的内存地址。
请注意,
obj如果是type
me,则while
p是type
*me。但是它们是不同的值。更改of字段
obj的值不会影响in的字段值
p(除非
mestruct在其中具有引用类型作为字段,即slice,map或channel。如果要产生这种效果请使用:
obj := p// equivalent to: var obj *me = p
现在
obj指向与相同的对象
p。它们本身仍然具有不同的地址,但是在它们内部拥有与实际
me对象相同的地址。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)