Go 数组
Go编程语言提供了一种叫做 数组 的数据结构,它可以存储相同类型的固定大小的顺序集合。数组用于存储一组数据,但更有用的是将数组视为相同类型的变量的集合。
不是声明单独的变量,比如number0、number1、…以及number99,你声明一个数组变量numbers,并使用numbers[0]、numbers[1]、…、numbers[99]来表示单独的变量。通过索引来访问数组中的特定元素。
所有数组由连续的内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。
声明数组
在Go中声明数组,程序员需要按照以下方式指定元素的类型和数组所需的元素数量 –
var variable_name [SIZE] variable_type
这被称为一维数组。 arraySize 必须是大于零的整数常量,而 type 可以是任何有效的Go数据类型。 例如,要声明一个名为 balance ,类型为 float32 的有10个元素的数组,可以使用以下语句 −
var balance [10] float32
这里, balance 是一个变量数组,可以容纳多达10个浮点数。
初始化数组
您可以使用逐个初始化或使用单个语句初始化数组,具体如下:
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
上述语句将数组中的第5个元素 th 赋值为50.0。所有的数组都以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程序员来说,与数组相关的重要概念应该是清楚的-
序号 | 概念与描述 |
---|---|
1 | 多维数组 Go支持多维数组。最简单的形式是二维数组。 |
2 | 将数组作为参数传递给函数 你可以通过指定数组的名称而不带索引的方式将指向数组的指针传递给函数。 |