go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组
Posted Locutus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组相关的知识,希望对你有一定的参考价值。
数组是具有相同类型的一组已编号且长度固定的数据序列,这种类型可以是任意基本类型,例如整型、字符串类型或者自定义类型。
数组是一段固定长度的连续内存区域。使用数组时可以修改成员,但是数组大小从声明时就确定,不可变化。
一维数组简介
相对于声明number0, number1, …, and number9变量,使用一维数组形式numbers[0], numbers[1] …, numbers[9]更加方便且易于扩展。
通过索引来访问(读写)数组元素,索引从0开始。
声明与初始化一维数组
- 声明并初始化数组元素为指定值(常用)
b := [3]int{1, 2, 3}
注:此方式需要保证大括号后面的元素数量与数组的大小一致。
- 声明并初始化数组元素为默认零值(常用)
一维数组的初始化需要指定数组名、元素个数、元素类型。
var array_name [SIZE]variable_type
例如,定义数组balance,长度为10,类型为float32
var balance [10]float32
另外,在声明数组后,也可在下文的代码段中修改数组
var a [3]int
a[0] = 1
- [ ]中数字 >= { }中元素个数
在数组初始化中,[ ]中定义的数字(数组大小)需要大于等于{ }中的元素个数。
var balance = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
“…”表示让编译器确定数组大小,Go语言会根据元素个数自动设置数组的大小。数组元素可以通过索引来读取(修改),修改数组的第五个元素为40.0。
var balance = [...]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
balance[4] = 40.0
- 数组初始化的其他形式
定义长度为5的数组,int类型,其元素值依次为:1,2,3,4,5
[5]int{1, 2, 3, 4, 5}
定义长度为5的数组,int类型,其元素值依次为:1,2,0,0,0
[5]int{1, 2}
定义元素值依次为1,2,3,4,5的数组,int类型,其长度由初始化时指定的元素个数决定。
[...]int{1, 2, 3, 4, 5}
注:这种方式比上一种更实用,不用自己算元素的个数,在元素较多或增加元素时,更为简便。
定义长度为5的数组,int类型,key:value元素,其value值依次为0,0,1,2,3。在初始化时指定了2,3,4索引中对应值为1,2,3
[5]int{2:1, 3:2, 4:3}
定义int类型,key:value元素,其value值依次为0,0,1,0,3。由于指定了最大索引4对应的值为3,根据初始化的元素个数,确定其长度为5。
[...]int{2:1, 4:3}
[...]int{}
注:go数组不显示value值为0的元素。
在初始化数组时,如果没有指定数组元素的初值,则赋值为元素的类型零值。
读写一维数组
数组元素可以通过索引(位置)来读取或修改。格式为数组名后加中括号,中括号中为索引。例如:
var salary float32 = balance[9]
示例
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语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组的主要内容,如果未能解决你的问题,请参考以下文章
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:一维数组
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 切片:切片内部结构
go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组:向函数传递数组
go语言学习笔记 — 基础 — 高级数据类型 — 派生类型:指针(pointer)数据容器函数(func)结构体(struct)通道(channel)