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;