数组是相似类型数据的集合。例如,
假设我们需要记录 5 名学生的年龄。与其创建 5 个单独的变量,不如直接创建一个数组。

在 Go 中创建数组
以下是在 Golang 中声明数组的语法。
var array_variable = [size]datatype{elements of array}
这里,size 表示数组的长度。数组元素的列表放在 {}
中。
例如,
// Program to create an array and prints its elements
package main
import "fmt"
func main() {
// declare array variable of type integer
// defined size [size=5]
var arrayOfInteger = [5]int{1, 5, 8, 0, 3}
fmt.Println(arrayOfInteger)
}
输出
[1 5 8 0 3]
在上面的示例中,我们创建了一个名为 arrayOfInteger 的数组。int
指定 arrayOfIntegers 数组只能存储整数。
声明 Go 数组的其他方法
也可以在不指定其大小的情况下声明数组。声明大小未定义数组的语法是
var array_variable = [...]datatype{elements of array}
例如,
package main
import "fmt"
func main() {
// declare array variable of type string
// undefined size
var arrayOfString = [...]string{"Hello", "Programiz"}
fmt.Println(arrayOfString)
}
输出
[Hello Programiz]
在上面的示例中,我们创建了一个大小未定义的 arrayOfString 数组,其大小为 [...]
。
注意:这里,如果 []
为空,它将成为一个切片。所以,如果我们想要一个大小未定义的数组,[...]
是必须的。
也可以使用简写语法 :=
创建数组。例如,
// Program to create an array using short-hand notation
package main
import "fmt"
func main() {
// declare array variable of type string
// using shorthand notation
arrayOfString := [...]string{"Hello", "Programiz"}
fmt.Println(arrayOfString)
}
输出
[Hello Programiz]
在上面的程序中,我们用简写语法(:=
)替换了创建数组的传统语法。
在 Golang 中访问数组元素
在 Go 中,数组中的每个元素都与一个数字相关联。这个数字称为数组索引。
我们可以使用索引号(0, 1, 2 …)来访问数组的元素。例如,
// Program to access the array elements
package main
import "fmt"
func main() {
languages := [3]string{"Go", "Java", "C++"}
// access element at index 0
fmt.Println(languages[0]) // Go
// access element at index 2
fmt.Println(languages[2]) // C++
}
在上面的示例中,我们创建了一个名为 languages 的数组。

在这里,我们可以看到每个数组元素都与索引号相关联。并且,我们使用了索引号来访问元素。
注意:数组索引总是从0开始。因此,数组的第一个元素位于索引0处,而不是1处。
在 Golang 中初始化数组
我们也可以使用索引号来初始化数组。例如,
package main
import "fmt"
func main() {
// declare an array
var arrayOfIntegers[3] int
// elements are assigned using index
arrayOfIntegers[0] = 5
arrayOfIntegers[1] = 10
arrayOfIntegers[2] = 15
fmt.Println(arrayOfIntegers)
}
输出
[5 10 15]
这里,我们使用索引号初始化了一个 arrayOfIntegers 数组。arrayOfIntegers[0] = 5
表示 arrayOfIntegers 的索引0存储值5,索引1存储值10,以此类推。
初始化数组的特定元素
在 Golang 中,我们也可以在声明时初始化数组的特定元素。例如,
package main
import "fmt"
func main() {
// initialize the elements of index 0 and 3 only
arrayOfIntegers := [5]int{0: 7, 3: 9}
fmt.Println(arrayOfIntegers)
}
输出
[7 0 0 9 0]
这里,我们分别用值7和9初始化了索引0和3处的元素。
在这种情况下,所有其他索引都会自动用0(整数的默认值)进行初始化。
在 Go 中更改数组元素
要更改数组元素,只需为特定索引重新分配一个新值即可。例如,
// Program to change element by assigning the desired index with a new value
package main
import "fmt"
func main() {
weather := [3]string{"Rainy", "Sunny", "Cloudy"}
// change the element of index 2
weather[2] = "Stromy"
fmt.Println(weather)
}
输出
[Rainy Sunny Stromy]
这里,我们将索引2处的值从"Cloudy"
重新分配为"Stromy"
,以更改数组元素。
查找 Go 数组的长度
在 Golang 中,我们可以使用 len()
函数来查找数组中存在的元素数量。例如,
package main
import "fmt"
func main() {
// create an array
var arrayOfIntegers = [...]int{1, 5, 8, 0, 3, 10}
// find the length of array using len()
length := len(arrayOfIntegers)
fmt.Println("The length of array is", length)
}
输出
The length of array is 6
这里,我们使用 len()
来查找 arrayOfIntegers 数组的长度。
在 Go 中遍历数组
在 Go 中,我们也可以遍历数组的每个元素。例如,
package main
import "fmt"
func main() {
age := [...]int{12, 4, 5}
// loop through the array
for i := 0; i < len(age); i++ {
fmt.Println(age[i])
}
}
输出
12 4 5
这里,len()
函数返回数组的大小。本例中 age 数组的大小为3,因此 for
循环会迭代 3 次;直到所有 3 个元素都被打印出来。
Golang 中的多维数组
到目前为止我们提到的数组称为一维数组。但是,我们可以在 Golang 中声明多维数组。
多维数组是数组的数组。也就是说,多维数组的每个元素本身就是一个数组。例如,
// Program to illustrate multidimensional array
package main
import "fmt"
func main() {
// create a 2 dimensional array
arrayInteger := [2][2]int{{1, 2}, {3, 4}}
// access the values of 2d array
for i := 0; i < 2; i++ {
for j := 0; j < 2; j++ {
fmt.Println(arrayInteger[i][j])
}
}
}
输出
1 2 3 4
这里,我们创建了一个包含 2 行 2 列的多维数组 arrayInteger。
多维数组可以像这样被视为一个矩阵
