加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

在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;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读