位置:首页 > 高级语言 > Go语言在线教程 > Go语言数组

Go语言数组

Go编程语言提供称为数组的数据结构,其可存储相同类型的元素的一个固定大小的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。

相反,声明单个变量,如number0, number1, ...和number99,声明一个数组变量,如号码和使用numbers[0], numbers[1]...numbers[99]表示单个变量。在数组的特定元素是由一个索引进行访问。

所有数组由连续的内存位置。最低的地址对应于第一元素和最高地址为最后一个元素。

Arrays in Go

声明数组

要声明在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;以下是我们上面讨论的相同的数组的图形表示:

Array Presentation

访问数组元素

元素由索引数组名访问。这是由放置在方括号内的元素的索引数组的名称后进行。例如:

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支持多维数组。多维数组的最简单的形式是二维数组
通过数组传递给函数 可以通过指定数组的名称不使用索引传递给函数的指针数组