- 3
- 0
- 约2.9千字
- 约 10页
- 2021-11-15 发布于湖南
- 举报
一篇文章带你了解Go言语基础之切片补充
前言
Hey,大家好呀,我是星期八,这次我们连续学习Go基础之切片补充扒。
make疑云
我们晓得,可以通过make创建切片。
var names = make([]string,10,10)
这句话表示动态创建了一个切片,切片中的元素数量为10个,切片的容量也为10个。
你有怀疑吗???
切片的数量和容量是什么???
他俩什么关系???
切片本质
其实切片,终究是一个存储数据的一个东西,目前晓得数组是可以存储东西的。
其实切片的本质,还是数组,只不过是Go挂念我们做了一些封装,可以便利的对切片里面的数据增删改查。
例如:
package main
import fmt
func main() {
var names = make([]int, 4, 10)
//int类型默认值是0
fmt.Println(names, len(names), cap(names)) //结果:[0 0 0 0] 4 10
}
理解图。
没错,本质就是指向了一个长一点的数组。
但是这个数组是会自动扩容的,当容量(cap)append满了之后,会自动扩容。
现在,我们就晓得make里面参数的意义了。
留意:在Go中,推举使用make创建切片,并且在创建时,需要考虑容量,尽可能不触发容量自动扩容机制,提高功能。
为什么切片append之后
原创力文档

文档评论(0)