Golang基础编程(四)-Map(集合)、Slice(切片)、Range

摘要:
然而,Map是无序的,我们无法确定其返回顺序,因为Map是使用哈希表实现的。地图声明和初始化地图在使用前必须初始化示例输出结果:日本首都是东京,印度首都是新德里,中国首都是北京II,Slice·Go语言切片是数组的抽象。Slice声明和初始化Slice长度和容量Slice拦截数据拦截方法[start,end]Left Close Right Open Rules Slice Append&Copy 3.range·Go语言中的range关键字用于迭代for循环中的数组、切片、通道或集合的元素。
一、Map

·Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值。

·Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map 是无序的,我们无法决定它的返回顺序,这是因为 Map 是使用 hash 表来实现的。

Map-声明&初始化

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第1张

Map使用前必须初始化

Map-示例

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第2张

输出结果:

Japan 首都是 东京

India 首都是 新德里

China 首都是 北京

二、Slice

·Go 语言切片是对数组的抽象。

·Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。

Slice-声明&初始化

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第3张

Slice-长度&容量

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第4张

 Slice-截取

数据截取方法 s[start, end] 左闭右开规则

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第5张

 Slice-追加&拷贝

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第6张

 三、Range

·Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对的 key 值。

Golang基础编程(四)-Map(集合)、Slice(切片)、Range第7张

输出结果:

sum: 9

index: 1

a -> apple

b -> banana

0 103

1 111

免责声明:文章转载自《Golang基础编程(四)-Map(集合)、Slice(切片)、Range》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Js 手指事件杭电oj--Tickets(dp)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

golang mgo的mongo连接池设置:必须手动加上maxPoolSize

本司礼物系统使用了golang的 mongo库 mgo,中间踩了一些坑,总结下避免大家再踩坑 golang的mgo库说明里是说明了开启连接复用的,但观察实验发现,这并没有根本实现连接的控制,连接复用仅在有空闲连接时生效,高并发时无可用连接会不断创建新连接,所以最终还是需要程序员自行去限制最大连接才行。 废话不多说,开始上代码 GlobalMgoSessi...

golang数据结构之双链表

目录结构:  doubleLink.go package link import ( "fmt" ) //HerosNode 链表节点 type HerosNode struct { ID int Name string pre *HerosNode //指针 next *HerosNode //指针 }...

golang版本管理工具gvm

一、参考 github: gvm 二、安装gvm 下载安装脚本 install_gvm.sh bash install_gvm.sh # 运行安装脚本 ➜ goEnv ./install_gvm.sh Cloning from https://github.com/moovweb/gvm.git to /Users/yz/.gvm Created...

Golang: 解析JSON数据之一

JSON 作为目前最流行的数据传输格式, 相信每个程序员都跟它打过交道吧。使用 Go 语言时,也不可避免的要操作 JSON 数据,令人惊喜的是,Go 内置了序列化和反序列化 JSON 的功能,今天就来总结一下。 序列化是将结构对象转为 JSON 字符串,反序列化是将 JSON 字符串转为结构对象,它们分别对应 encoding/json 包下面的两个方法:...

Golang压缩Jpeg图片和PNG图片

博主一直在维护一个导出PDF的服务,但是这个服务导出的PDF文件是真的巨大,动辄就上百MB。这里面主要是图片占据了大多数体积,所以考虑在导出前压缩一下图片。 Jpeg的图片压缩是很好做的,因为jpeg这个协议本身就支持调整图片质量的。在golang中,我们只需要使用标准库的image/jpeg,将图片从二进制数据解码后,降低质量再编码为二进制数据即可实现...

【Go语言系列】在VsCode中配置Go的开发环境

一、为什么选VSCode 这个系列的初宗是带领公司的PHPer转Go,在正式写这篇博文前,咱们先说说Go有哪些主流的IDE 1、GoLand(收费) JetBrains出品必属精品,除了贵没有其它缺点,如果你用这款IDE,我只想说出门右转,不送!~~~~ 2、LiteIDE(免费)LiteIDE是一个简单的开源IDE。值得注意的是,它是Go语言2012年正...