跳到主要内容

Go语言数组

提示
  1. 数组定义和初始化:Go 数组是存储相同类型数据的集合。数组可以在声明时指定大小和元素,也可以不指定大小(使用 [...]),数组索引始终从 0 开始。
  2. 访问和修改数组元素:数组元素可以通过索引进行访问和修改。使用 len() 函数可获取数组的长度,循环结构可用于遍历数组中的每个元素。
  3. 多维数组:Go 也支持多维数组(数组的数组),例如二维数组用于表示矩阵。在多维数组中,每个元素本身也是一个数组。

数组是相似数据类型的集合。例如,

假设我们需要记录5个学生的年龄。我们可以创建一个数组,而不是创建5个单独的变量。

数组元素

在 Go 中创建数组

以下是在 Golang 中声明数组的语法。

var array_variable = [size]datatype{array elements}

这里,size 表示数组的长度。数组的元素列表放在 {} 内。

例如,

// 程序用于创建数组并打印其元素

package main
import "fmt"

func main() {

// 声明类型为整型的数组变量
// 定义大小 [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{array elements}

例如,

package main
import "fmt"

func main() {

// 声明类型为字符串的数组变量
// 未定义大小
var arrayOfString = [...]string{"Hello", "Programiz"}

fmt.Println(arrayOfString)
}

输出

[Hello Programiz]

在上面的例子中,我们创建了一个未定义大小 [...] 的名为 arrayOfString 的数组。

注意: 这里,如果 [] 为空,则它变成一个切片。因此,如果我们想要一个未定义大小的数组,[...] 是必须的。

使用简写符号声明数组

也可以使用简写符号 := 创建数组。例如,

// 程序使用简写符号创建数组

package main
import "fmt"

func main() {

// 使用简写符号声明类型为字符串的数组变量
arrayOfString := [...]string{"Hello", "Programiz"}

fmt.Println(arrayOfString)
}

输出

[Hello Programiz]

在上面的程序中,我们用简写符号 (:=) 替换了创建数组的传统语法。

在 Golang 中访问数组元素

在 Go 中,数组中的每个元素都与一个数字相关联。这个数字被称为数组索引

我们可以使用索引号**(0、1、2...)**访问数组的元素。例如,

// 程序访问数组元素

package main
import "fmt"

func main() {
languages := [3]string{"Go", "Java", "C++"}

// 访问索引为 0 的元素
fmt.Println(languages[0]) // Go

// 访问索引为 2 的元素
fmt.Println(languages[2]) // C++

}

在上面的例子中,我们创建了一个名为 languages 的数组。

Go 编程中数组索引从 0 开始

这里,我们可以看到每个数组元素都与一个索引号相关联。我们使用了索引号来访问元素。

注意: 数组索引始终从0开始。因此,数组的第一个元素位于索引0,而不是1

在 Golang 中初始化数组

我们也可以使用索引号来初始化数组。例如,

package main
import "fmt"

func main() {

// 声明一个数组
var arrayOfIntegers[3] int

// 使用索引赋值元素
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() {

// 仅初始化索引 0 和 3 的元素
arrayOfIntegers := [5]int{0: 7, 3: 9}

fmt.Println(arrayOfIntegers)
}

输出

[7 0 0 9 0]

这里,我们初始化了索引03的元素,值分别为79

在这种情况下,所有其他索引自动初始化为整数的默认值0

在 Go 中更改数组元素

要更改数组元素,我们可以简单地将新值重新分配给特定索引。例如,

// 程序通过分配新值给所需索引来更改元素

package main
import "fmt"

func main() {
weather := [3]string{"Rainy", "Sunny", "Cloudy"}

// 更改索引 2 的元素
weather[2] = "Stromy"

fmt.Println(weather)
}

输出

[Rainy Sunny Stromy]

这里,我们将新值重新分配给索引2,将数组元素从“Cloudy”更改为“Stromy”。

在 Go 中找到数组的长度

在 Golang 中,我们可以使用 len() 函数来找到数组内元素的数量。例如,

package main
import "fmt"

func main() {

// 创建一个数组
var arrayOfIntegers = [...]int{1, 5, 8, 0, 3, 10}

// 使用 len() 找出数组长度
length := len(arrayOfIntegers)

fmt.Println("数组的长度是", length)
}

输出

数组的长度是 6

这里,我们使用了 len() 来找出 arrayOfIntegers 数组的长度。

在 Go 中遍历数组

在 Go 中,我们也可以遍历数组的每个元素。例如,

package main
import "fmt"

func main() {
age := [...]int{12, 4, 5}

// 遍历数组
for i := 0; i < len(age); i++ {
fmt.Println(age[i])
}

}

输出

12
4
5

这里,len() 函数返回数组的大小。数组 age 的大小是3,所以 for 循环迭代了 3 次,直到打印出所有 3 个元素。

在 Golang 中的多维数组

到目前为止我们提到的数组被称为一维数组。然而,在 Golang 中我们可以声明多维数组。

多维数组是数组的数组。也就是说,多维数组的每个元素本身就是一个数组。例如,

// 程序演示多维数组

package main
import "fmt"

func main() {

// 创建一个二维数组
arrayInteger := [2][2]int{{1, 2}, {3, 4}}

// 访问二维数组的值
for i := 0; i < 2; i++ {
for j := 0; j < 2; j++ {
fmt.Println(arrayInteger[i][j])
}
}
}

输出

1
2
3
4

这里,我们创建了一个具有 2 行 2 列的多维数组 arrayInteger。

多维数组可以像这样被视为矩阵

Golang 中的二维数组