小白教程
所有教程
关于
Search
172.70.130.160
172.70.130.160
参数设置
贡献
退出
操作
编辑
移动
保护
信息
历史
删除
查看“Go multi dimensional arrays”的源代码
本页内容
下一节:
Go_passing_arrays_to_functions
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{DISPLAYTITLE:多维数组}}[[Category:go arrays|1]] = Go 语言多维数组 = [[go arrays|Go 语言数组]] Go 语言支持多维数组,以下为常用的多维数组声明方式: <pre>var variable_name [SIZE1][SIZE2]...[SIZEN] variable_type </pre> 以下实例声明了三维的整型数组: <pre>var threedim [5][10][4]int </pre> == 二维数组 == 二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式如下: <pre>var arrayName [ x ][ y ] variable_type </pre> variable_type 为 Go 语言的数据类型,arrayName 为数组名,二维数组可认为是一个表格,x 为行,y 为列,下图演示了一个二维数组 a 为三行四列: 二维数组中的元素可通过 a[ i ][ j ] 来访问。 <sample title="" desc="" lang="go" hererun="1"> package main import "fmt" func main() { // Step 1: 创建数组 values := [][]int{} // Step 2: 使用 append() 函数向空的二维数组添加两行一维数组 row1 := []int{1, 2, 3} row2 := []int{4, 5, 6} values = append(values, row1) values = append(values, row2) // Step 3: 显示两行数据 fmt.Println("Row 1") fmt.Println(values[0]) fmt.Println("Row 2") fmt.Println(values[1]) // Step 4: 访问第一个元素 fmt.Println("第一个元素为:") fmt.Println(values[0][0]) } </sample> 以上实例运行输出结果为: <pre>Row 1 [1 2 3] Row 2 [4 5 6] 第一个元素为: 1</pre> == 初始化二维数组 == 多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组: <pre>a := [3][4]int{ {0, 1, 2, 3} , /* 第一行索引为 0 */ {4, 5, 6, 7} , /* 第二行索引为 1 */ {8, 9, 10, 11}, /* 第三行索引为 2 */ } </pre> <blockquote>'''注意:'''以上代码中倒数第二行的 '''}''' 必须要有逗号,因为最后一行的 '''}''' 不能单独一行,也可以写成这样: <pre>a := [3][4]int{ {0, 1, 2, 3} , /* 第一行索引为 0 */ {4, 5, 6, 7} , /* 第二行索引为 1 */ {8, 9, 10, 11}} /* 第三行索引为 2 */ </pre></blockquote> 以下实例初始化一个 2 行 2 列 的二维数组: <sample title="" desc="" lang="go" hererun="1"> package main import "fmt" func main() { // 创建二维数组 sites := [2][2]string{} // 向二维数组添加元素 sites[0][0] = "Google" sites[0][1] = "xiaoBai" sites[1][0] = "Taobao" sites[1][1] = "Weibo" // 显示结果 fmt.Println(sites) } </sample> 以上实例运行输出结果为: <pre>[[Google xiaoBai] [Taobao Weibo]]</pre> == 访问二维数组 == 二维数组通过指定坐标来访问。如数组中的行索引与列索引,例如: <pre> val := a[2][3] 或 var value int = a[2][3] </pre> 以上实例访问了二维数组 val 第三行的第四个元素。 二维数组可以使用循环嵌套来输出元素: <sample title="" desc="" lang="go" hererun="1"> package main import "fmt" func main() { /* 数组 - 5 行 2 列*/ var a = [5][2]int{ {0,0}, {1,2}, {2,4}, {3,6},{4,8}} var i, j int /* 输出数组元素 */ for i = 0; i < 5; i++ { for j = 0; j < 2; j++ { fmt.Printf("a[%d][%d] = %d\n", i,j, a[i][j] ) } } } </sample> 以上实例运行输出结果为: <pre>a[0][0] = 0 a[0][1] = 0 a[1][0] = 1 a[1][1] = 2 a[2][0] = 2 a[2][1] = 4 a[3][0] = 3 a[3][1] = 6 a[4][0] = 4 a[4][1] = 8 </pre> 以下实例创建各个维度元素数量不一致的多维数组: <sample title="" desc="" lang="go" hererun="1"> package main import "fmt" func main() { // 创建空的二维数组 animals := [][]string{} // 创建三一维数组,各数组长度不同 row1 := []string{"fish", "shark", "eel"} row2 := []string{"bird"} row3 := []string{"lizard", "salamander"} // 使用 append() 函数将一维数组添加到二维数组中 animals = append(animals, row1) animals = append(animals, row2) animals = append(animals, row3) // 循环输出 for i := range animals { fmt.Printf("Row: %v\n", i) fmt.Println(animals[i]) } } </sample> 以上实例运行输出结果为: <pre>Row: 0 [fish shark eel] Row: 1 [bird] Row: 2 [lizard salamander]</pre> [[go arrays|Go 语言数组]]
返回至“
Go multi dimensional arrays
”。
下一节:
Go_passing_arrays_to_functions