数组
基本介绍
数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。
- 数组的地址可以通过数组名来获取 &intArr 。
- 数组的死一个元素的地址,就是数组的首地址。
- 数组的各个元素的地址间隔是一句数组的类型决定,比如int64,间隔8;int32,间隔4。
数组的使用
访问数组元素:数组名[下标],小表从0开始,比如要使用a数组的第三个元素 a[2]。
四种初始化数组的方式:
- var numArr01 [3]int = [3]int{1, 2, 3}
- var numArr02 = [3]int{5, 6, 7}
- var numArr03 = […]int{8, 9, 10}
- var numArr04 = […]int{1: 800, 0: 900, 2:999}
数组的遍历
方法一:普通的 for 循环
方法二:for–range 结构遍历
for index, value := range array01 {
...
}
- 第一个返回值 index 是数组下标。
- 第二个 value 是该下标位置的值。
- 它们都是仅在for循环内部可见的局部变量。
- 遍历数组的时候,如果不想使用下标 index ,可以直接把下标 index 标为下划线 _。
- index 和 value 的名称不是固定的,可以自行指定,一般命名为 index 和 value。
数组使用注意事项和细节
- 数组是多个相同类型数据的组合,一个数组一旦声明/定义了,其长度是固定的,不能动态变化。
- var arr []int 这是 arr 就是一个 slice 切片。
- 数组中元素可以是任何数据类型,包括值类型和引用类型,但是不能混用。
- 数组创建后,如果没有赋值,有默认值。数值类型数组,默认值为0;字符串数组,默认值为 “”;bool数组,默认值为 false。
- 使用数组的步骤:1、生命数组并开辟空间;2、给数组各个元素赋值(默认零值);3、使用数组。
- 数组的下标是从0开始。
- 数组的下标必须在指定范围内使用,否则报 panic。
- Golang 的数组属值类型,在默认情况下是值传递,因此会进行值拷贝。数组间不会互相影响。
- 如果想在其他函数中,修改原来的数组,可以使用引用传递(指针方式)。
- 长度是数组的一部分,在传递函数参数时需要考虑数组的长度。
切片
- 切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用传递的机制。
- 切片的使用和数组类似,遍历切片、访问切片的元素和求切片的长度都一样。
- 切片的长度是可以变化的,因此切片是一个可以动态变化的数组。
- 切片定义的基本语法:var 变量名 []类型,比如:var a []int。