📌  相关文章
📜  数组接口 golang - Go 编程语言 - Go 编程语言(1)

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

数组接口 golang - Go 编程语言

Go 编程语言提供了丰富的数组接口,使得程序员能够更加方便地对数组进行处理。

数组的定义

在 Go 中,可以使用以下方式来定义数组:

var arr [n]T // 定义一个长度为 n 的 T 类型数组,其中 T 可以是任何类型,如 int、string、float 等。

其中,n 表示数组的长度,T 表示数组中元素的类型。例如:

var arr [5]int // 定义一个长度为 5 的 int 类型数组
数组的初始化

可以使用以下方式来初始化数组:

var arr = [n]T{e1, e2, ..., en} // 定义一个长度为 n 的 T 类型数组,并初始化为 e1 到 en。

例如:

var arr = [5]int{1, 2, 3, 4, 5} // 定义一个长度为 5 的 int 类型数组,并初始化为 1 到 5。

如果没有显式指定数组长度,Go 会根据初始化表达式的个数来推导数组长度:

var arr = [...]T{e1, e2, ..., en} // 定义一个长度为 n 的 T 类型数组,并初始化为 e1 到 en。

例如:

var arr = [...]int{1, 2, 3, 4, 5} // 定义一个长度为 5 的 int 类型数组,并初始化为 1 到 5。

除了使用数组字面量初始化数组,还可以使用 for 循环来初始化数组:

var arr [n]T // 定义一个长度为 n 的 T 类型数组,其中 T 可以是任何类型,如 int、string、float 等。
for i := 0; i < n; i++ {
    arr[i] = ...
}

例如:

var arr [5]int // 定义一个长度为 5 的 int 类型数组
for i := 0; i < 5; i++ {
    arr[i] = ...
}
数组的遍历

可以使用 for 循环来遍历数组:

for i, v := range arr {
    ...
}

其中,i 表示数组下标,v 表示对应的元素值。例如:

var arr = [...]int{1, 2, 3, 4, 5} // 定义一个长度为 5 的 int 类型数组,并初始化为 1 到 5。
for i, v := range arr {
    fmt.Printf("arr[%d] = %d\n", i, v)
}
数组的操作

下面介绍一些数组的常用操作:

获取数组长度

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

len(arr)

例如:

var arr = [...]int{1, 2, 3, 4, 5} // 定义一个长度为 5 的 int 类型数组,并初始化为 1 到 5。
fmt.Println(len(arr)) // 输出 5
数组切片

可以使用切片来对数组进行切分,得到一个子数组:

arr[start:end] // 从数组下标 start 到 end(不包含 end)的元素组成一个新的数组切片。

例如:

var arr = [...]int{1, 2, 3, 4, 5} // 定义一个长度为 5 的 int 类型数组,并初始化为 1 到 5。
var slice = arr[1:3] // 获取 arr[1] 和 arr[2] 组成的数组切片
fmt.Println(slice) // 输出 [2 3]
数组拼接

可以使用 append 函数将两个数组拼接成一个数组:

append(arr1, arr2...) // 将 arr2 中的元素依次添加到 arr1 的末尾形成一个新的数组。

例如:

var arr1 = [...]int{1, 2, 3} // 定义一个长度为 3 的 int 类型数组,并初始化为 1 到 3。
var arr2 = [...]int{4, 5} // 定义一个长度为 2 的 int 类型数组,并初始化为 4 和 5。
var arr3 = append(arr1, arr2...) // 将 arr2 中的元素依次添加到 arr1 的末尾形成一个新的数组
fmt.Println(arr3) // 输出 [1 2 3 4 5]
数组复制

可以使用 copy 函数将一个数组复制到另一个数组:

copy(dest, src) // 将 src 中的元素复制到 dest 中形成一个新的数组。

例如:

var arr1 = [...]int{1, 2, 3} // 定义一个长度为 3 的 int 类型数组,并初始化为 1 到 3。
var arr2 = [...]int{4, 5} // 定义一个长度为 2 的 int 类型数组,并初始化为 4 和 5。
copy(arr1, arr2) // 将 arr2 中的元素复制到 arr1 中
fmt.Println(arr1) // 输出 [4 5 3]
结语

数组是一种常见的数据结构,在编程中经常会用到。Go 提供了丰富的数组接口,使得程序员能够更加方便地对数组进行处理。