数组可以存储多个同一类型数据,数组是一种数据类型,在go中是值类型
数组的优点:
- 增加代码的可维护性
- 代码变得清晰,容易扩展
-
数组定义
var 数组名 [数组大小]数据类型
var a [5]int //声明一个长度为5的名为a的数组,类型为int -
数组的内存布局
- 数组的地址可以通过数组名来获取 &a
- 数组第一个元素的地址,就是数组地址
- 数组各个元素之间的内存间隔依据数组类型而定,例如float64为8个字节,float32为4个字节
- 数组的初始化方法
- var a [3]int = [3]int{1,2,3}
- var a = [3]int{1,2,3}
- var a = […]int{1,2,3}
- var a = […]int{1:10,2:20,3:30} //第一个元素为10,第二个元素为20,第三个元素为30
-
数组的遍历
for i,v = rage a{
…
} -
数组使用的注意事项和细节
- 数组是一个相同类型的值的集和,数组一旦声明,数组长度就是固定的,不能动态变化
- var a []int 是一个切片,切片的底层是数组
- 数组的数据类型只能是同一种
- 数组创建后如果没有赋值,系统分配有默认值
int – 0
字符串 --""
bool --false - 数组下标从0开始
- 数组下标不可越界
- go语言中数组是值类型,因此在传递时是值传递,因此会进行值拷贝,数组之间不会相互影响
- 在其他函数中修改原来的数组,可以使用引用传递(指针传递)
- 数组长度是数组一部分,在传递时需要考虑数组长度