数组
1.数组
01.切片基础
1.1 Array介绍
- 数组是指一系列
同一类型数据的集合
。 - 数组中包含的每个数据被称为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等
- 一个数组包含的元素个数被称为数组的长度。
- 在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是说
[5]int 和 [10]int 是两个不同的类型
。 - Golang中数组的另一个特点是占用内存的连续性,也就是说数组中的元素是被分配到连续的内存地址中的,因而索引数组元素的速度非常快。
- 和数组对应的类型是 Slice(切片),Slice 是可以增长和收缩的动态序列,功能也更灵活
- 但是想要理解 slice 工作原理的话需要先理解数组,所以本节主要为大家讲解数组的使用。
1.2 数组定义
- 比如:var a [5]int, 数组的长度必须是常量,并且长度是数组类型的一部分
- 一旦定义,长度不能变。 [5]int 和[4]int 是不同的类型。
1.3 数组是值类型
- 数组是值类型,赋值和传参会复制整个数组。
- 因此改变副本的值,不会改变本身的值。
- 注意:
- 数组支持 “==“、”!=” 操作符,因为内存总是被初始化过的。
[n]*T
表示指针数组,*[n]T
表示数组指针
02.创建数组
2.1 自定义数组长度
2.2 让编译器识别
- 按照上面的方法每次都要确保提供的初始值和数组长度一致
- 一般情况下我们可以让编译器根据初始值的个数自行推断数组的长度
2.3 指定索引值
- 我们还可以使用指定索引值的方式来初始化数组
03.数组的遍历
3.1 普通遍历数组
3.2 k,v遍历数组
04.多维数组
4.1 定义多维数组
4.2 遍历多维数组
05.数组练习
5.1 数组求和
5.2 数组最大值
- 1、声明一个数组 var intArr[5] = […]int {1, -1, 12, 65, 11}
- 2、假定第一个元素就是最大值,下标就 0
- 3、然后从第二个元素开始循环比较,如果发现有更大,则交换
数组
http://coderedeng.github.io/2021/01/07/2.数组/