Go语言数组
Go编程语言提供称为数组的数据结构,其可存储相同类型的元素的一个固定大小的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。
相反,声明单个变量,如number0, number1, ...和number99,声明一个数组变量,如号码和使用numbers[0], numbers[1]...numbers[99]表示单个变量。在数组的特定元素是由一个索引进行访问。
所有数组由连续的内存位置。最低的地址对应于第一元素和最高地址为最后一个元素。
声明数组
要声明在Go语言数组,程序员指定元素的类型以及如下的数组所需元件的数目:
var variable_name [SIZE] variable_type
这就是所谓的一维数组。arraySize必须是一个非零整数常数,类型可以是任何有效的数据类型。例如,要声明一个10个元素的数组为balance,类型float32使用下面的语句:
var balance [10] float32
现在balance是一个变量数组,其足以容纳10浮点数。
初始化数组
你可以用一个Go初始化数组一个或者使用单一的声明如下:
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
括号之间的数{}的值不能比声明方括号[]之间的数组元素的数大。
如果省略数组的大小,数组只是大足以容纳初始化被创建。因此,如果编写:
var balance = []float32{1000.0, 2.0, 3.4, 7.0, 50.0}
将创建完全相同的数组,和前面的例子中那样。下面是一个例子,分配数组的单个元素:
balance[4] = 50.0
以上语句用50.0的数值作为数组中的元素分配到第5个位置。所有数组通常0作为其第一元件的也被称为基本索引,数组的最后一个索引的索引将是数组的总大小减去1;以下是我们上面讨论的相同的数组的图形表示:
访问数组元素
元素由索引数组名访问。这是由放置在方括号内的元素的索引数组的名称后进行。例如:
float32 salary = balance[9]
以上语句需要将数组的第10个位置的元素赋值给变量salary。以下是其将使用所有上述三个概念即一个例子。声明,分配和访问数组:
package main import "fmt" func main() { var n [10]int /* n is an array of 10 integers */ var i,j int /* initialize elements of array n to 0 */ for i = 0; i < 10; i++ { n[i] = i + 100 /* set element at location i to i + 100 */ } /* output each array element's value */ for j = 0; j < 10; j++ { fmt.Printf("Element[%d] = %d\n", j, n[j] ) } }
让我们编译和运行上面的程序,这将产生以下结果:
Element[0] = 100 Element[1] = 101 Element[2] = 102 Element[3] = 103 Element[4] = 104 Element[5] = 105 Element[6] = 106 Element[7] = 107 Element[8] = 108 Element[9] = 109
Go语言数组详情
数组是很重要的在Go语言中,应该需要了解更多的细节。有下列关系到数组几个重要的概念Go程序员是应该清楚的:
概念 | 描述 |
---|---|
多维数组 | Go支持多维数组。多维数组的最简单的形式是二维数组 |
通过数组传递给函数 | 可以通过指定数组的名称不使用索引传递给函数的指针数组 |