2019-10-16 Golang copy struct

The go is passing by value.
That is, if I do
a = b
a is a copy of b.

But if a and b are pointers.
if I do a = b.
it's pass by reference.
to copy value,
I need to do
*a = *b

package main

import (
    "fmt"
)

type T struct {
    Id int
    Name string
}

func main() {
    fmt.Println("Hello, playground")
    
    // var t T
    t := &T{}
    t.Id = 3
    t.Name = "what"
    
    fmt.Printf("%v \n", t)
    
    // var t2 T
    t2 := &T{}
    
    *t2 = *t
    fmt.Printf("%v \n", t2) 
    
    t.Id =4
    fmt.Printf("%v \n", t)
    fmt.Printf("%v \n", t2) 
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容