在golang中复制指针值* a = * b
发布时间:2020-12-16 19:12:26 所属栏目:大数据 来源:网络整理
导读:type T struct { Id int Name string}func Copy(a *T,b *T) error { b.Id=5 b.Name="gert" a = b return nil} 一个还是空的,我必须这样做 func Copy(a *T,b *T) error { b.Id = 5 b.Name = "gert" a.Id = b.Id a.Name = b.Name return nil} 现在一个与b相同
type T struct { Id int Name string } func Copy(a *T,b *T) error { b.Id=5 b.Name="gert" a = b return nil } 一个还是空的,我必须这样做 func Copy(a *T,b *T) error { b.Id = 5 b.Name = "gert" a.Id = b.Id a.Name = b.Name return nil } 现在一个与b相同 为什么以及如何直接将* b复制到* a?
你的第一个例子是对的。你传递两个对象的指针。你把这些指针放在变量A和B中。但是A和B是局部变量,所以当你说a = b时,你只是说“忘记A(本地)中的内容”。程序的其余部分仍然具有指向这两个原始对象的指针。
如果要将B中的数据结构复制到A中的数据结构,请改为: *a = *b; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |