over-golang/01-基础语法/06-值类型-3-数组.md
2021-07-02 18:11:59 +08:00

1.5 KiB
Raw Permalink Blame History

一 数组

1.1 数组的声明

数组是一段固定长度的连续内存区域。数组的长度定义后不可更改,长度使用 len() 获取。

var arr1 [10]int					//定义长度为10的整型数组很少这样使用
arr2 [5]int := [5]int{1,2,3,4,5}	//定义并初始化
arr3 := [5]int{1,2,3,4,5}			//自动推导并初始化
arr4 := [5]int{1,2}					//指定总长度,前几位被初始化,没有的使用零值
arr5 := [5]int{2:10, 4:11}			//有选择的初始化,没被初始化的使用零值
arr6 := [...]int{2,3,4}				//自动计算长度

1.2 数组常用操作

arr[:]      代表所有元素
arr[:5]     代表前五个元素,即区间的左闭右开
arr[5:]     代表从第5个开始不包含第5个
len(arr)    数组的长度

贴士上述操作会引发类型的变化数组将会转化为Go中新的数据类型slice见09节

1.3 数组的遍历

方式一for循环遍历

arr := [3]int{1,2,3}

for i := 0; i < len(arr); i++ {
	fmt.Println(arr[i])
}

方式二for-range遍历

arr := [3]int{1,2,3}

for k, v := range arr {
	fmt.Println(k)	//元素位置	
	fmt.Println(v)	//元素值
}

1.4 数组使用注意事项

数组创建完长度就固定,不可以再追加元素;

长度是数组类型的一部分,因此[3]int[4]int是不同的类型;

数组之间的赋值是值的赋值,即当把一个数组作为参数传入函数的时候,传入的其实是该函数的副本,而不是他的指针。