七叶笔记 » golang编程 » golang2021数据格式(19)切片与数组区别

golang2021数据格式(19)切片与数组区别

  通过定义,来比较一下切片与数组的区别

先回顾数组的基本定义初始化:

a:=[5]int{ }

数组中[ ]是一个固定的数字,表示长度。定义完后,长度是固定,最多存储5个数字。

切片的基本定义初始化如下:

s:=[ ]int{ }//定义空切片

看定义的方式,发现与数组很相似,但是注意:切片中的[ ]是空的,或者是“…”.  切片的长度和容量可以不固定。

现在通过程序演示,动态向切片中追加数据

     append( )函数,第一个参数表示向哪个切片追加数据,后面表示具体追加的数据。

     最终输出结果为:

      

 

切片在内存中形式(重要)

Ø        基本的介绍: 为了让大家更加深入的理解切片,我们画图分析一下切片在内存中是如何布局的,这个是一个非

常重要的知识点:(以前面的案例来分析)

Ø        画出前面的切片内存布局

 

 

 

Ø        对上面的分析图总结

1. slice 的确是一个引用类型

2. slice 从底层来说,其实就是一个数据结构(struct 结构体) type slice struct {

ptr        *[2]int

len        int

cap        int

 

}

相关文章