Go 语言数组学习笔记
在 Go 语言中,数组(Array)是一种固定长度且拥有相同数据类型元素的集合。数组在声明时需要指定其长度,且长度不能改变。
声明数组
我们可以使用以下方式来声明一个数组:
Copy Codevar arr [5]int // 声明一个包含 5 个 int 元素的数组
可以在声明时初始化数组:
Copy Codearr := [5]int{1, 2, 3, 4, 5} // 定义并初始化一个包含 5 个 int 元素的数组
如果初始化时没有指定所有元素,未指定的元素将自动初始化为零值,如下所示:
Copy Codearr := [5]int{1, 2} // 定义并初始化前两个元素为 1 和 2,后三个元素为 0
我们也可以使用 ...
来让编译器自动计算数组长度:
Copy Codearr := [...]int{1, 2, 3, 4, 5} // 定义一个包含 5 个 int 元素的数组
访问数组元素
数组元素可以通过下标来访问,下标从 0 开始,例如:
Copy Codearr := [5]int{1, 2, 3, 4, 5} // 定义并初始化一个包含 5 个 int 元素的数组
fmt.Println(arr[0]) // 输出第一个元素:1
fmt.Println(arr[3]) // 输出第四个元素:4
数组遍历
可以使用 for
循环来遍历数组:
Copy Codearr := [5]int{1, 2, 3, 4, 5} // 定义并初始化一个包含 5 个 int 元素的数组
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
也可以使用 range
关键字来遍历数组:
Copy Codearr := [5]int{1, 2, 3, 4, 5} // 定义并初始化一个包含 5 个 int 元素的数组
for _, v := range arr {
fmt.Println(v)
}
数组作为函数参数
当我们将数组作为函数参数时,实际上是将数组的指针传递给函数。在函数内部对数组所做的更改会影响到原始数组。
以下是一个修改数组元素的例子:
Copy Codefunc modifyArray(arr *[5]int) {
for i := 0; i < len(*arr); i++ {
(*arr)[i] *= 2
}
}
func main() {
arr := [5]int{1, 2, 3, 4, 5} // 定义并初始化一个包含 5 个 int 元素的数组
modifyArray(&arr)
fmt.Println(arr) // 输出 [2 4 6 8 10]
}
在这个例子中,我们定义了一个函数 modifyArray
,并将数组的指针作为参数传递给它。函数内部将数组中的每个元素都乘以 2,然后我们在 main
函数中输出修改后的数组。
实例演示
以下是一个示例程序,在此程序中我们声明了一个长度为 5 的数组,并使用 for
循环和 range
关键字输出了数组中的元素:
Copy Codepackage main
import "fmt"
func main() {
arr := [5]int{1, 2, 3, 4, 5}
for i := 0; i < len(arr); i++ {
fmt.Println(arr[i])
}
for _, v := range arr {
fmt.Println(v)
}
}
输出如下:
Copy Code1 2 3 4 5 1 2 3 4 5