0
点赞
收藏
分享

微信扫一扫

Go语言学习笔记(五)数组与切片

爱动漫建模 2022-02-03 阅读 35

数组

定义

数组是一个长度固定的数据类型,是用来存储同一种类型的元素的连续块。
存储的类型可以是内置数据类型,也可以是自定义的结构体。

内存占用

数组占用的内存是连续分配的。
内存连续的好处:
1. CPU能把数据缓存更久的时间。
2. 容易计算索引,可以快速迭代元素。

声明和初始化

声明数组需要指定存储数据的类型数量。声明后,类型和长度就不能改变了。

// 声明一个包含5个元素的整型数组
var array [5]int
// 使用数组字面量声明数组
array := [5]int{}
// 使用数组字面量声明数组,使用...代替数组长度,Go会根据初始化时元素数量确定数组长度
array := [...]int{10,20,30,40,50}
// 使用数组字面量声明数组,指定数组大小和具体位置的值
array := [5]int{1:10,3:30}

注:Go语言声明的变量,会使用对应类型的零值对变量初始化,数组也不例外。

使用方式

数组单个元素的访问和修改

访问数组中某个元素,使用 [] 运算符。

// 声明一个数组
array := [5]int{0:10,1:20,2:30}
// 修改数组索引2的元素的值。由30变为35
array[2] = 35

// 声明一个指针数组(数组内元素为整型指针)
array := [5]*int{0:new(int),1:new(int)}
// 为数组索引为0的元素赋值。array[0]是一个整型指针
*array[0]=10

数组之间的赋值

Go语言中,数组是一个值,可以用在赋值操作中。(只有长度和类型都相等的数组才可以互相赋值)
使用变量名代表整个数组。(比如上面的array)

// 声明一个数组
array1 := [5]string{}
// 声明第2个数组
array2 := [5]string{"Red","Blue","Green","Yellow","Pink"}
// 赋值
array1 = array2

-------------------------------------- 手动分割线--------------------------------------------------

多维数组

定义

其实数组本身只有一个维度,但可以通过组合多个数组创建多维数组。

内存占用

多维数组就是多个一维数组的组合,多维数组的内存占用是这些一维数组紧挨着存放的。

声明与初始化

// 声明一个二维整型数组,4行2列。其实就是4个[2]int数组。
var array [4][2]int
// 使用数组字面量来声明并初始化一个4行2列的二维整型数组。
array := [4][2]int{{10,11},{20,21},{30,31},{40,41}}
// 使用数组字面量来声明一个4行2列的二维整型数组,初始化第2行和第4行。
array := [4][2]int{1:{20,21},3:{40,41}}
// 使用数组字面量来声明一个4行2列的二维整型数组,初始化第2行第1个元素和第4行第2个元素。
array := [4][2]int{1:{0:20},3:{1:41}}
举报

相关推荐

0 条评论