Go 语言学习手札 ━━ 数组

数组的定义

Go 语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。

数组的声明

Go 语言中,数组的声明需要指定元素类型及元素个数,格式如下:

var 数组名 [元素个数] 元素类型

如:var a [3] int

初始化与赋值

  • 初始化数组中 {} 中的元素个数不能大于 [] 中的数字。
  • 如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小。

如:

// 先声明,再赋值
var arr1 [3] int
arr1 = [3]int{1, 2, 3}

// 声明和赋值同时进行
var arr2 = [3]int{1, 2, 3}

// 不设置数组的长度
var arr3 = [...]int{1, 2, 3}
var arr4 = []int{1, 2 3}

访问数组元素

与其他编程语言类似,通过元素在数组的位置(下标)来访问数组元素,如:

var arr = []int{1, 2, 3}
fmt.Print(arr[1]) // 输出 2,下标是从 0 开始的

多维数组

Go 语言支持多维数组,常用的多维数组声明方式为:var variable_name [SIZE1][SIZE2]…[SIZEN] variable_type

// 声明一个三维数组
var threedim [5][10][4]int

二维数组

二维数组是最简单的多维数组,二维数组本质上是由一维数组组成的。二维数组定义方式为:var arrayName [ x ][ y ] variable_type

  • variable_type 为 Go 语言的数据类型
  • arrayName 为数组名
  • x 为行
  • y 为列

可以将二维数组可认为是一个表格。如图:

二维数组中的元素可通过 a[ i ][ j ] 来访问。

初始化二维数组

多维数组可通过大括号来初始值。以下实例为一个 3 行 4 列的二维数组:

a = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引为 0 */
 {4, 5, 6, 7} ,   /*  第二行索引为 1 */
 {8, 9, 10, 11},   /* 第三行索引为 2 */
}

需要注意的是,以上代码中倒数第二行的 } 必须要有逗号,因为最后一行的 } 不能单独一行,也可以写成这样:

a = [3][4]int{  
 {0, 1, 2, 3} ,   /*  第一行索引为 0 */
 {4, 5, 6, 7} ,   /*  第二行索引为 1 */
 {8, 9, 10, 11}}   /* 第三行索引为 2 */
或
var a = [3][5]int {{1, 2, 3, 4, 5}, {0, 9, 8, 7, 6}, {3, 4, 5, 6, 7}}

标签:

About: Mr.zhang

成谜于写 bug 无法自拔~


发表评论

邮箱地址不会被公开。 必填项已用*标注