Go语言slice的那些坑

Go语言Google开发的适用于多核编程的语言。我感觉它像是C语言的现代版本,简单,并发支持友好,部署轻松。GO语言中保留关键字就只有25个,这也足以说明它的学习成本并不高。

然而,Go语言里面slice这个东西并不简单。初学者容易掉入坑中。此文件就试图把slice给讲解清楚。

下面先讲一下slice的一些基本特性。

1. slice内部有三个变量,分别是:ptr, len, cap

ptr是用来存储数据的数组

cap是ptr数组的长度

len是实际数组的长度

2. 如何在初始化的时候,指定slice的长度?

a := make([]int, 10)

这里make的时候,第2个参数,就是这个slice的长度。

这个时候它的capacity是多少呢?

fmt.Println(cap(a))

这里打印出来是10。

注意:

如果 a := make([]int, 10)

a = append(a, 1)

此时 len(a) = 11 的

make([]int,10) 其实是分配一个长度为10的初始化为0值的 切片

转载: https://studygolang.com/articles/6557