📜  GO语言 数组(1)

📅  最后修改于: 2023-12-03 14:41:37.263000             🧑  作者: Mango

GO语言数组介绍

Go语言数组是一种固定长度且类型相同的序列,数组中的每个元素都可以通过一个唯一的下标来访问。数组是一个值类型,在赋值或者传递函数时都会进行值拷贝,因此一般情况下使用切片(slice)会更加实用。

声明和初始化数组

Go语言中声明数组的一般形式是:

var arrayname [arraysize]arraytype

其中arrayname是数组的名字,arraysize是数组的长度,arraytype是数组存储的元素类型。

例如,声明一个长度为5,存储整型数据的数组:

var arr [5]int

可以使用:=自动推导数组类型和长度:

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

如果初始化的元素个数不到数组长度,则剩下的元素会被初始化为对应类型的零值。

var arr [5]int // arr=[0,0,0,0,0]
var arr2 [5]int{1,2} // arr2=[1, 2, 0, 0, 0]
数组的访问和修改

数组的元素可以通过下标访问和修改。下标从0开始,最大下标为数组长度减1。

arr := [5]int{1, 2, 3, 4, 5}
arr[0] = 10 // 修改元素
fmt.Println(arr[0]) // 访问元素,输出10
数组的长度

数组的长度可以使用len()函数来获取:

arr := [5]int{1, 2, 3, 4, 5}
fmt.Println(len(arr)) // 输出 5
数组的遍历

Go语言中可以使用for循环遍历数组,也可以使用range关键字来遍历数组。

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

// for循环遍历
for i:=0;i<len(arr);i++{
    fmt.Println(arr[i])
}

// range关键字遍历
for _,v:= range arr{
    fmt.Println(v)
}

range关键字返回两个值,第一个是元素的下标,第二个是元素本身。如果只需要元素本身,可以使用_来占位。

多维数组

Go语言也支持多维数组的声明和访问。例如声明一个二维数组:

var arr [2][3]int // 2行3列的二维数组

访问二维数组的元素时,需要使用两个下标,形如arr[i][j]

arr := [2][3]int{{1,2,3},{4,5,6}}
fmt.Println(arr[0][1]) // 输出2
数组的传递

数组作为函数的参数时,会进行值拷贝。因此一般情况下使用切片(slice)会更加实用。

小结

Go语言中数组是一种固定长度的序列,可以通过下标访问和修改元素,使用len()函数获取长度,使用for循环或range关键字遍历数组,支持多维数组的声明和访问。在函数传递参数时会进行值拷贝,使用时需要注意。