📅  最后修改于: 2023-12-03 14:55:00.727000             🧑  作者: Mango
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 提供了丰富的数组接口,使得程序员能够更加方便地对数组进行处理。