在 Go 语言中,数组是一种固定长度的序列,它可以存储相同类型的元素。下面详细介绍数组的定义、初始化、访问和操作。
数组的定义
数组的定义语法为:[n]T
,其中 n
表示数组的长度,T
表示数组元素的类型。
package main import "fmt" func main() { // 定义一个长度为 5 的整数数组 var arr [5]int fmt.Println(arr) // 输出:[0 0 0 0 0] // 定义一个长度为 3 的字符串数组 var strArr [3]string fmt.Println(strArr) // 输出:[ ] }
数组的访问
数组元素的访问通过索引进行,索引从 0 开始。
package main import "fmt" func main() { arr := [5]int{10, 20, 30, 40, 50} // 访问数组元素 fmt.Println(arr[0]) // 输出:10 fmt.Println(arr[4]) // 输出:50 // 修改数组元素 arr[2] = 100 fmt.Println(arr) // 输出:[10 20 100 40 50] // 获取数组长度 fmt.Println(len(arr)) // 输出:5 }
数组的遍历
可以使用 for
循环或 range
关键字遍历数组。
package main import "fmt" func main() { arr := [5]int{10, 20, 30, 40, 50} // 使用传统的 for 循环遍历数组 for i := 0; i < len(arr); i++ { fmt.Println(arr[i]) } // 使用 range 关键字遍历数组 for index, value := range arr { fmt.Printf("Index: %d, Value: %d\n", index, value) } }
数组的多维数组
Go 语言支持多维数组(如二维数组)。
package main import "fmt" func main() { // 定义一个 2x3 的二维数组 var matrix [2][3]int // 初始化二维数组 matrix = [2][3]int{ {1, 2, 3}, {4, 5, 6}, } fmt.Println(matrix) // 输出:[[1 2 3] [4 5 6]] // 访问二维数组元素 fmt.Println(matrix[0][1]) // 输出:2 // 遍历二维数组 for i := 0; i < len(matrix); i++ { for j := 0; j < len(matrix[i]); j++ { fmt.Printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]) } } }
综合示例
下面的代码展示了数组的定义、初始化、访问和操作。
package main import "fmt" func main() { // 定义和初始化数组 var numbers [5]int numbers = [5]int{1, 2, 3, 4, 5} // 访问数组元素 fmt.Println("Array:", numbers) fmt.Println("Element at index 2:", numbers[2]) // 修改数组元素 numbers[2] = 100 fmt.Println("Modified Array:", numbers) // 数组长度 fmt.Println("Length of array:", len(numbers)) // 遍历数组 fmt.Println("Array elements:") for i := 0; i < len(numbers); i++ { fmt.Println(numbers[i]) } // 使用 range 遍历数组 fmt.Println("Array elements with range:") for index, value := range numbers { fmt.Printf("Index: %d, Value: %d\n", index, value) } // 多维数组 var matrix [2][3]int matrix = [2][3]int{ {1, 2, 3}, {4, 5, 6}, } fmt.Println("2D Array:", matrix) // 遍历多维数组 fmt.Println("2D Array elements:") for i := 0; i < len(matrix); i++ { for j := 0; j < len(matrix[i]); j++ { fmt.Printf("matrix[%d][%d] = %d\n", i, j, matrix[i][j]) } } }
标签:arr,01,matrix,fmt,数组,Println,main From: https://www.cnblogs.com/JJJHaoran/p/18290070