golang学习笔记之引用类型与值类型

来源:互联网 发布:软件开发和软件研发 编辑:程序博客网 时间:2024/05/21 06:23

在golang中只有三种引用类型它们分别是切片slice、字典map、管道channel。其它的全部是值类型,引用类型可以简单的理解为指针类型,它们都是通过make完成初始化
看下面两个例子:

    a :=[5]int{2,3,4,5,6}    b := a    b[2]=77    fmt.Println(a, b)

上面定义了一个数组a,它是值类型,复制给b是copy,当b发生变化后a并不会发生任何变化,结果如下:
[2 3 4 5 6] [2 3 77 5 6]

但如果是切片则不然

    a :=[]int{2,3,4,5,6}    b := a    b[2]=77    fmt.Println(a, b)

a和b本质上指向同一个底层数组

[2 3 77 5 6] [2 3 77 5 6]

0 0
原创粉丝点击