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

 

posted @ 2021-04-07 20:01  zbs666  阅读(228)  评论(0编辑  收藏  举报