go语言的string和slice是值拷贝吗?

来源:互联网 发布:电视机看电视软件 编辑:程序博客网 时间:2024/05/01 16:08
package mainimport "fmt"func main() {    var str string = "12345"    tmpstr := str    fmt.Printf("%x %x\n", str, tmpstr)    tmpstr = tmpstr + "x"    fmt.Printf("%x %x\n", str, tmpstr)    var a []byte = []byte("12345")    b := a    fmt.Printf("%x %x\n", a, b)    b = append(b, 'a')    fmt.Printf("%x %x\n", a, b)}


应该是指针拷贝,

上面的输出是

3132333435 3132333435
3132333435 313233343578
3132333435 3132333435
3132333435 313233343561



前面两个是一样的,说明并不是值拷贝。

0 0
原创粉丝点击