4.golang中map的增删改查

map 一种无序的键值对, 它是数据结构 hash 表的一种实现方式。map工作方式就是:定义键和值,并且可以获取,设置和删除其中的值。

声明

// 使用关键字 map 来声明
bMap := map[string]int{"key1": 18}
// 使用make来声明
cMap := make(map[string]int)
cMap["key2"] = 19
fmt.Println("bMap:", bMap)
fmt.Println("cMap:", cMap)

上面程序用两种方式创建了两个 map,运行结果如下:

bMap: map[key1:18]
cMap: map[key2:19]

检索键的值

检索 Map元素的语法为map[key]

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
fmt.Println("aMap:", aMap)
fmt.Println("aMapkey2:", aMap["key2"])
fmt.Println("aMapkey3:", aMap["key3"])

当map中不存在该key时,该映射将返回该元素类型的零值。所以以上程序输出为:

aMap: map[key1:18 key2:19]
aMapkey2: 19
aMapkey3: 0 

检索键是否存在

检索键是否存在的语法为value, ok := map[key]

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
value, ok := aMap["key3"]
if ok {fmt.Println("key3", value)
} else {fmt.Println("key3", "no")
}

ok的值为map中是否存在该key,存在为true,反之为false。所以以上程序输出为:key3 no

遍历 Map中的所有元素

可以用for循环的range形式用于迭代 Map的所有元素。

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
for key, value := range aMap {fmt.Printf("aMap[%s] = %d\n", key, value)
}

以上程序输出为:

aMap[key1] = 18
aMap[key2] = 19

因为 map 是无序的,因此对于程序的每次执行,不能保证使用 for range 遍历 map 的顺序总是一致的,而且遍历的顺序也不完全与元素添加的顺序一致。

从 Map中删除元素

delete(map, key) 用于删除 map 中的键。delete 函数没有返回值。

aMap := make(map[string]int)
aMap["key1"] = 18
aMap["key2"] = 19
fmt.Println("map before deletion", aMap)
delete(aMap, "key1")
fmt.Println("map after deletion", aMap)

以上程序输出为:

map before deletion map[key1:18 key2:19]
map after deletion map[key2:19]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/174174.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elk日志分析系统:

elk日志分析系统: elk是一套完整的日志集中处理方案,由三个开源的软件简称组成; E:Easticsearch 简称ES是一个开源的,分布式的存储检索引擎,(索引型的非关系数据库)存储日志 由java代码开发的&#xff0…

CSC公派博士后|管理学老师赴韩国首尔大学达成目标

J老师自身背景正好卡在CSC公派博士后申报条件的边缘,为增大通过概率,其提出优选亚洲范围内的世界知名高校、专业相符、2年博士后职位的要求。最终我们用韩国首尔大学的邀请函助其顺利获批CSC,实现了所有既定目标。 J老师背景: 申…

24. 两两交换链表中的节点

​​题目来源: leetcode题目,网址:24. 两两交换链表中的节点 - 力扣(LeetCode) 解题思路: 遍历时交换即可。 解题代码: /*** Definition for singly-linked list.* struct ListNode {* i…

外贸企业如何搭建合适的B2B独立站

随着全球电子商务的快速发展,越来越多的外贸企业开始关注并投入到B2B独立站的搭建中。B2B独立站不仅可以提升企业的品牌形象,还可以拓展销售渠道,提高销售效率。然而,如何搭建一个适合的外贸B2B独立站,却需要从多个方面…

开发者在分发平台上传和发布APP的步骤

注册账号:首先,开发者需要在分发平台上注册一个账号。这个账号将用于管理你的应用程序和进行相关操作。完善信息:注册完成后,开发者需要完善个人信息,包括姓名、联系方式等。这将有助于建立信任关系,并与用…

【Tiny_CD】Tiny_CD变化检测网络详解(含python代码)

题目:TinyCD: A (Not So) Deep Learning Model For Change Detection 论文:paper 代码:code 目录 🍟 🍟1.摘要 🍗🍗 2.贡献 🍖🍖 3.网络结构

前端必学——实现电商图片放大镜效果(附代码)

放大镜可以说是前端人必须学会的程序之一,今天的案例为大家展示一下怎么实现放大镜的效果! 效果图展示 整个效果就是当鼠标放到展示图上的时候,会出现一个遮罩层以及弹出来一个框展示一个详情图,并且鼠标移动的时候详情图跟着移动&#xff0…

android 动态创建selector状态选择器 动态创建Drawable

最近在做一个使用接口返回的字符串:"#ff0000" 来动态设置drawable背景颜色与动态设置状态选择器selector的需求,之前写习惯了shape的xml,还是第一次写动态的,有点搞笑,搞笑的是自己没写过,不知道…

家乡旅游推广软文怎么写?媒介盒子分享

随着各地政策的放开,旅行已经成为很多消费者生活中不可缺少的一项,各地景区也在宣传上纷纷发力,希望能够吸引游客。只要文案写得好,没有景点火不了,今天媒介盒子就来和大家聊聊:家乡旅游推广软文怎么写。 一…

独乐乐不如众乐乐(二)-某汽车零部件厂商IC EMC企业规范

前言:该汽车零部件厂商关于IC EMC的规范可能是小编看过的企业标准里要求最明确的一份企业标准了,充分说明了标准方法不是死的,可以灵活应用。 先看看这份规范的抬头: 与其他企业规范一样,该汽车零部件厂商的IC EMC规范…

TDA4开发环境Docker化

文章目录 背景1. TDA4X Linux SDK编译环境镜像构建1.1 安装SDK1.2 验证制卡1.2.1 出现的问题:1.3 验证编译1.3.1 出现的问题2. TDA4X Linux-RT SDK编译环境镜像构建2.1 安装SDK2.2 出现的问题参考背景 开始阅读本篇前,假设你已经对docker有了一定了解,且有过docker换件搭建…

1、Linux_介绍和安装

1. Linux概述 Linux:是基于Unix的一个开源、免费的操作系统,其稳定性、安全性、处理多并发能力强,目前大多数企业级应用甚至是集群项目都部署运行在linux操作系统之上,在我国软件公司得到广泛的使用 Unix:是一个强大…

聊聊如何进行代码混淆加固

​ 聊聊如何进行代码混淆 前言什么是代码混淆代码混淆,是指将计算机程序的代码,转换成一种功能上等价,但是难于阅读和理解的形式的行为。 代码混淆常见手段1、名称混淆 将有意义的类,字段、方法名称更改为无意义的字符串。生成…

Java/Android 各类型数据构造和各类型数据解析

Java/Android 各类型数据构造和各类型数据解析 1.如何构造/解析{"key":"value","key":"value","key":"value"}jsonString1)json解析2)fastjson解析3)Gson解析4)遍历key值解析2.如何构造/解析[{"key&q…

CSGO搬砖还能做吗?CSGO饰品未来走势如何?

steam/csgo搬砖项目真能月入过万吗?到底真的假的? 如何看待CSGO饰品市场的整体走向? 从整体来说,CSGO的饰品市场与规模肯定会持续不断的上升,大盘不会发生特别大的波动,目前处于稳定期!&…

【C++干货铺】非类型模板 | 模板特化 | 模板分离编译

个人主页点击直达:小白不是程序媛 C系列专栏:C干货铺 代码仓库:Gitee 目录 非类型模板参数 模板的特化 什么是模板特化? 函数模板特化 类模板的特化 全特化 偏特化 模板的分离编译 什么是分离编译? 模板的…

单细胞featureplot美化修改-自定义修改图片样式-umap密度图画等高线

大家好,欢迎来的单细胞图片美化专辑 1.如何修改seruat对象的行名 2.FeaturePlot如何把所有阳性表达的spot放到图的前面 在单细胞实践中,我发现不同的客户对画图需求并不一致,这可能和个人审美有关吧。本专辑着重于各种各样的单细胞个性化绘…

Python虚拟环境

Python虚拟环境 介绍 虚拟环境(virtual environment),它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”&am…

Vatee万腾科技的数字化奇迹:Vatee创新力量的前瞻探讨

在数字化的潮流中,Vatee万腾科技以其独特而强大的创新力量,创造了一系列数字化奇迹,引领着科技的前沿发展。这不仅是对技术的突破,更是对未来的深刻探讨,为整个数字化时代描绘出一幅充满奇迹的画卷。 Vatee万腾以创新为…

入侵redis之准备---Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制

入侵redis之准备—Linux关于定时任务crontab相关知识了解配合理解shell反弹远程控制 几点需要知道的信息 【1】crontab一般来说服务器都是有的,依赖crond服务,这个服务也是必须安装的服务,并且也是开机自启动的服务,也就是说&…