文章永久连接:https://tech.souyunku.com/?p=5304
数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型
相对于去声明 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: 搜云库技术团队(tech.souyunku.com)
* Copyright © 2015-2065 tech.souyunku.com. 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 语言支持多维数组,最简单的多维数组是二维数组 |
向函数传递数组 | 可以向函数传递数组参数 |
干货推荐
附录:GOlang 教程:系列文章
- 一、Go 语言基础教程
- 二、Go 语言 – 简介
- 三、Go 语言环境配置
- 四、Go 语言结构
- 五、Go 语言基础语法
- 六、Go 语言数据类型
- 七、Go 语言变量
- 八、Go 语言常量
- 九、Go 语言运算符
- 十、Go 语言条件语句
- 十一、Go 语言循环语句
- 十二、Go 语言函数
- 十三、Go 语言 – 变量作用域
- 【当前读到】十四、Go 语言 – 数组
- 十五、Go 语言 – 字符串
- 十六、Go 语言 – 指针
- 十七、Go 语言 – 结构体
- 十八、Go 语言 – 数据类型 interface
- 十九、Go 语言 – 切片(slice)
- 二十、Go 语言 – 哈希表(map)
- 二十一、Go 语言 – range 关键字
- 二十二、Go 语言 – 关键字 delete
- 二十三、Go 语言递归函数
- 二十四、Go 语言 – 类型转换
- 二十五、Go 语言 – 错误处理
- 二十六、Go 语言 – 开发工具
- 二十七、Go 语言 for 循环语句
- 二十八、Go 语言 – 多维数组
- 二十九、Go 语言 break 语句
- 三十、Go 语言 – 指向指针的指针
- 三十一、Go 语言 – 指针作为函数参数
- 三十二、Go 语言 goto 语句
- 三十三、Go 语言 if 语句
- 三十四、Go 语言函数值传递调用
- 三十五、Go 语言 for 循环嵌套
- 三十六、Go 语言 – 向函数传递数组
- 三十七、Go 语言 – 函数 – 引用传值
- 三十八、Go 语言 select 语句
- 三十九、Go 语言 if…else 语句
- 四十、Go 语言 switch 语句
- 四十一、Go 语言 – 闭包函数
- 四十二、Go 语言指针数组
- 四十三、Go 语言 if 语句嵌套
- 四十四、Go 语言 – 函数作为值
- 四十五、Go 语言函数方法
- 四十六、Go 语言 continue 语句