通过定义,来比较一下切片与数组的区别
先回顾数组的基本定义初始化:
a:=[5]int{ }
数组中[ ]是一个固定的数字,表示长度。定义完后,长度是固定,最多存储5个数字。
切片的基本定义初始化如下:
s:=[ ]int{ }//定义空切片
看定义的方式,发现与数组很相似,但是注意:切片中的[ ]是空的,或者是“…”. 切片的长度和容量可以不固定。
现在通过程序演示,动态向切片中追加数据
append( )函数,第一个参数表示向哪个切片追加数据,后面表示具体追加的数据。
最终输出结果为:
切片在内存中形式(重要)
Ø 基本的介绍: 为了让大家更加深入的理解切片,我们画图分析一下切片在内存中是如何布局的,这个是一个非
常重要的知识点:(以前面的案例来分析)
Ø 画出前面的切片内存布局
Ø 对上面的分析图总结
1. slice 的确是一个引用类型
2. slice 从底层来说,其实就是一个数据结构(struct 结构体) type slice struct {
ptr *[2]int
len int
cap int
}