Go语言基础之6--值类型和引用类型
一、 引用类型
引用类型理解为(C语言):指针
Golang中只有三种引用类型:slice(切片)、map(字典)、channel(管道);
实例1-1
package main import "fmt" func main(){ a := []int{2, 3, 4, 5, 6} b := a fmt.Println(a,b) b[2] = 77 fmt.Println(a,b) }
执行结果:
解释:
上面定义了一个数组a,它是引用类型(slice切片),被b引用(指针)后,当b发生变化后a也发生变化。
二、 值类型
Go语言中除slice(切片)、map(字典)、channel(管道)外,都是值类型;
值类型可以理解为值的拷贝,相当于完全拷贝一份(有副本存在)。
实例2-1
package main import "fmt" func main(){ a := [5]int{2, 3, 4, 5, 6} b := a fmt.Println(a,b) b[2] = 77 fmt.Println(a,b) }
执行结果:
解释:
上面定义了一个数组a,它是值类型,复制给b是copy,当b发生变化后a并不会发生任何变化。