橘子味的心
标题:Go 语言 - 数组

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

相对于去声明 number0, number1, ..., and number99 的变量,使用数组形式 numbers[0], numbers[1] ..., numbers[99] 更加方便且易于扩展

数组元素可以通过索引(位置)来读取(或者修改),索引从0开始,第一个元素索引为 0,第二个索引为 1,以此类推

Go 语言提供了数组类型的数据结构,而且索引下表从 0 开始

声明数组

Go 语言数组声明需要指定元素类型及元素个数

语法

Go 语言声明数组的语法格式如下

var variable_name [SIZE] variable_type

上面是一维数组的定义语法

数组长度必须是整数且大于 0

下面的代码定义了一个长度为 10 的 float32 类型的数组

var balance [10] float32

初始化数组

Go 语言的数组初始化和 C/C++ 语言一样,使用大括号 ( {} )

var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

初始化数组时带括号 {} 中的元素个数不能大于中括号 [] 中的数字

如果忽略 [] 中的数字不设置数组大小,Go 语言会根据元素的个数来设置数组的大小

var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}

该实例与上面的实例是一样的,虽然没有设置数组的大小

修改数组元素

数组元素可以通过索引(位置)来读取(或者修改)

balance[4] = 50.0

索引从 0 开始,第一个元素索引为 0,第二个索引为 1,以此类推

访问数组元素

数组元素可以通过索引(位置)来读取

格式为数组名后加中括号,中括号中为索引的值

例如下面的代码读取了数组 balance 第 10 个元素的值并赋值给 salary 变量

float32 salary = balance[9]

范例

下面的范例演示了数组完整操作(声明、赋值、访问

/**
 * file: main.go
 * author: 简单教程(www.twle.cn)
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

package main

import "fmt"

func main() {
   var n [10]int /* n 是一个长度为 10 的数组 */
   var i,j int

   /* 为数组 n 初始化元素 */         
   for i = 0; i < 10; i++ {
      n[i] = i + 100 /* 设置元素为 i + 100 */
   }

   /* 输出每个数组元素的值 */
   for j = 0; j < 10; j++ {
      fmt.Printf("Element[%d] = %d\n", j, n[j] )
   }
}

编译运行以上 Go 语言范例,输出结果如下

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 语言支持多维数组,最简单的多维数组是二维数组
向函数传递数组 可以向函数传递数组参数

分类