Go系列——数组
数组
Go中的数组是同一种数据类型元素的集合。数组从声明的时候就确定了,在使用的时候可以修改数组成员,但是数组的大小不可改变。
// 定义一个数组
var a [5]string
这里表示定义一个长度为5的元素是string类型的数组
在Go中数组的长度定义后便不能再改变了,所以说长度不同的两个数组是不同的两个变量。
访问数组的元素
访问数组元素的方法一般是通过数组的下标,数组的下标是从0开始一直到len-1,如果访问到长度之外就会报错
var water [2]string
water = [2]string{"a","b"}
water[0] // "a"
water[len(water)-1] // "b"
初始化数组
在定义数组变量的时候进行初始化
var water = [2]int{1,2}
使用自适应长度进行初始化
var water = [...]string{"a","b","c"}
使用指定索引来进行初始化
var water = [...]int{1:1,5:3]
数组的遍历
var water = [...]string{"a","b","c"}
// for循环
for i := 0;i < len(water);i++ {
fmt.Println(water[i])
}
// for range遍历
for index,value := range water {
fmt.Println(index,value)
}
多维数组
二维数组
arr := [2][2]int{
{1,1},
{2,2}
}
fmt.Println(arr) // [[1 1] [2 2] [3 3]]
fmt.Println(arr[0][0]) // 1
多维数组只有第一纬度也就是第一层可以使用...
来让编译器推导出数组的长度
arr := [...][2]int{
{1,1},
{2,2},
}
二维数组的遍历
arr := [2][2]int{
{1,1},
{2,2}
}
for index1, value1 := range arr {
for index2, value2 := range value1 {
fmt.Println(index2, value2)
}
fmt.Println(index1, value1)
}
小结
数组是同一种类型元素的集合,而且数组是值类型。赋值和传参会复制整个数组,改变副本的值,不会改变本身原来的值。
转载自:https://juejin.cn/post/7224081662468833341