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

前端之家收集整理的这篇文章主要介绍了在golang中复制指针值* a = * 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;

猜你在找的Go相关文章