func main() {
var a [4]int
var b = a
a[0] = 111
b[1] = 222
fmt.Println(a, b)
}
// [111 0 0 0] [0 222 0 0]
A slice is a descriptor of an array segment. It consists of a pointer to the array, the length of the segment, and its capacity (the maximum length of the segment).
容量三问
容量是啥?
要理解切片的容量,必须要深入理解数组。因为切片是数组只上的概念。
那么数组有什么特点?
b = a
是数组值copy, copy过后,ab之间没有任何关系,一个改变并不会影响到另一个。切片的定义方式
左边竖框是切片,右边横框是数组。可以把切片理解为一个对象,有三个属性,而不能将切片理解为数组。
参考