在golang中复制指针值* a = * b

前端之家收集整理的这篇文章主要介绍了在golang中复制指针值* a = * b前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
  1. type T struct {
  2. Id int
  3. Name string
  4. }
  5.  
  6. func Copy(a *T,b *T) error {
  7. b.Id=5
  8. b.Name="gert"
  9. a = b
  10. return nil
  11. }

一个还是空的,我必须这样做

  1. func Copy(a *T,b *T) error {
  2. b.Id = 5
  3. b.Name = "gert"
  4. a.Id = b.Id
  5. a.Name = b.Name
  6. return nil
  7. }

现在一个与b相同

为什么以及如何直接将* b复制到* a?

你的第一个例子是对的。你传递两个对象的指针。你把这些指针放在变量A和B中。但是A和B是局部变量,所以当你说a = b时,你只是说“忘记A(本地)中的内容”。程序的其余部分仍然具有指向这两个原始对象的指针。

如果要将B中的数据结构复制到A中的数据结构,请改为:

  1. *a = *b;

猜你在找的Go相关文章