go语言学习笔记 — 基础 — 高级数据类型 — 数据容器 — 数组(1):一维数组

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

数组是一段固定长度的连续内存区域。使用数组时可以修改成员,但是数组大小从声明时就确定,不可变化。


一维数组简介

相对于声明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] )
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值