取消引用结构是否会返回新的结构副本?

取消引用结构是否会返回新的结构副本?,第1张

取消引用结构是否会返回新的结构副本?

当你写

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
(除非
me
struct在其中具有引用类型作为字段,即slice,map或channel。如果要产生这种效果请使用:

obj := p// equivalent to: var obj *me = p

现在

obj
指向与相同的对象
p
。它们本身仍然具有不同的地址,但是在它们内部拥有与实际
me
对象相同的地址。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5564732.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存