Golang数组与切片的区别
目录
Golang 数组与切片的区别
数组与切片的基本概念
1.1 数组的定义和初始化
数组是一种固定长度的数据结构,声明时需要指定长度。
|
|
1.2 切片的定义和初始化
切片是一个动态的长度可变的序列,切片初始化与定义不需要指定长度,而是通过对数组的引用来创建
|
|
数组与切片的区别
2.1 大小和长度
数组是大小固定的,声明时需要指定长度
切片的大小是可变的,长度可以随着元素的增加而增加,不需要在声明的时候指定长度
2.2 传递方式
数组和切片在作为参数传递的时候,都是值传递,但是因为切片和切片的副本的指向的底层数组是相同的。
2.3 初始化
数组需要指定长度并且逐个赋值,也可以使用字面量赋值
切片可以通过字面量或者使用 make 函数进行初始化
|
|
数组和切片的转换
3.1 从数组生成切片
可以通过切片表达式从数组生成切片,这将创建一个引用数组的切片
|
|