golang 复制对象的正确做法

Posted 莫名

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了golang 复制对象的正确做法相关的知识,希望对你有一定的参考价值。

需求

  实际运用种,传参是一对象指针,现在如何最简便地复制一对象?

实现

  :&*  先拿到值再指针?

package main

import (
	"time"
	"log"
)

func main() {

	T1 := &TestS{1}
	T2 := &*T1
	T2.a = 5
	log.Print(T1)
	log.Print(T2)
}

  输出

2017/06/15 20:14:27 &{5}
2017/06/15 20:14:27 &{5}

   正确:先*T 再&T

package main

import (
    "time"
    "log"
)

func main() {

    T1 := &TestS{1}
    T2 := *T1
    T3 := &T2    //改动地方
    T3.a = 5
    log.Print(T1)
    log.Print(T3)
}

  输出

2017/06/15 20:16:55 &{1}
2017/06/15 20:16:55 &{5}

 

  

以上是关于golang 复制对象的正确做法的主要内容,如果未能解决你的问题,请参考以下文章

代码片段 - Golang 实现集合操作

在Golang中有相当的Guava表吗?如果不是在Go中正确的做法

golang goroutine例子[golang并发代码片段]

golang代码片段(摘抄)

Android课程---Android Studio使用小技巧:提取方法代码片段

代码片段 - Golang 实现简单的 Web 服务器