当前位置: 首页 > news >正文

Golang之路---02 基础语法——字典

字典

字典(Map 类型),是由若干个 key:value 这样的键值对映射组合在一起的数据结构。

key 不能是切片,不能是字典,不能是函数。

字典初始化

方式:map[KEY_TYPE]VALUE_TYPE

  //1.var map1 map[string]int = map[string]int{"fish":80,"beef":69}//2.map2 := map[string]int{"egg":2}//3.map3 := make(map[string]int)map3["egg"] = 1map3["apple"] = 4

字典的相关操作


func main() {//声明一个为orders的字典var orders map[string]int//未初始化的字典为nil,无法直接进行赋值if orders == nil{//利用make函数进行初始化orders = make(map[string]int)}//如果已经初始化,则可以直接赋值orders["fish"] = 20//map[fish:20]fmt.Println(orders)//添加元素 , 如果key已经存在,则直接更新valueorders["beef"] = 35//读取元素,直接使用 [key] 即可 ,如果 key 不存在,也不报错,会返回其value-type 的零值。//0fmt.Println(orders["pair"])//删除元素 使用 delete 函数,如果 key 不存在,delete 函数会静默处理,不会报错。delete(orders,"fish")//0fmt.Println(orders["fish"])}

嵌套字典

choice := make(map[string]map[string]string)choice["考研"] = make(map[string]string,3)choice["考研"]["id"]="1"choice["考研"]["why"]="提升学历"choice["考研"]["school"]="清华附小"//map[考研:map[id:1 school:清华附小 why:提升学历]]fmt.Println(choice)

判断key是否存在

当key不存在,会返回value-type的零值 ,所以你不能通过返回的结果是否是零值来判断对应的 key 是否存在,因为 key 对应的 value 值可能恰好就是零值。
其实字典的下标读取可以返回两个值,使用第二个返回值表示对应的 key 是否存在,若存在ok为true,若不存在,则ok为false

  orders["e"] = 90orders["rf"] = 80flag1,flag2 := orders["e"]//值为90if flag2 {fmt.Printf("值为%d\n",flag1)}else{fmt.Printf("值不存在\n")}//值不存在flag3,flag4 := orders["ttt"]if flag4{fmt.Printf("值为 %d\n",flag3)}else{fmt.Printf("值不存在\n")}

对字典元素进行遍历

func main() {orders := map[string]int{"beef":78,"pair":12}//1.同时获取key 和 value
for name,price := range orders{/*key: beef,value: 78key: pair,value: 12*/fmt.Printf("key: %s,value: %d\n",name,price)
}//2.只获取key
for name := range orders{/*key: beefkey: pair*/fmt.Printf("key: %s\n",name)
}//3.只获取value,注意这里需要用匿名变量
for _,price := range orders{/*value: 78value: 12*/fmt.Printf("value: %d\n",price)
}

相关文章:

Golang之路---02 基础语法——字典

字典 字典(Map 类型),是由若干个 key:value 这样的键值对映射组合在一起的数据结构。 key 不能是切片,不能是字典,不能是函数。 字典初始化 方式:map[KEY_TYPE]VALUE_TYPE //1.var map1 map[string]int…...

Pytorch(三)

一、经典网络架构图像分类模型 数据预处理部分: 数据增强数据预处理DataLoader模块直接读取batch数据 网络模块设置: 加载预训练模型,torchvision中有很多经典网络架构,可以直接调用注意别人训练好的任务跟咱们的并不完全一样,需要把最后…...

Linux——进程控制

目录 1. 进程创建 1.1 fork函数 1.2 fork系统调用内部宏观流程 1.3 fork后子进程执行位置分析 1.4 fork后共享代码分析 1.5 fork返回值 1.6 写时拷贝 1.7 fork常规用法 1.8 fork调用失败的原因 2.进程终止 2.1 进程退出场景 2.2 strerror函数—返回描述错误号的字符…...

剑指 Offer 59 - I. 滑动窗口的最大值 / LeetCode 239. 滑动窗口最大值(优先队列 / 单调队列)

题目: 链接:剑指 Offer 59 - I. 滑动窗口的最大值;LeetCode 239. 滑动窗口最大值 难度:困难 下一篇:剑指 Offer 59 - II. 队列的最大值(单调队列) 给你一个整数数组 nums,有一个大…...

【Linux后端服务器开发】IP协议

目录 一、IP协议概述 二、协议头格式 三、网段划分 四、IP地址的数量限制 五、路由 六、分片和组装 一、IP协议概述 主机:配有IP地址,但是不进行路由控制的设备 路由器:即配有IP地址,又能进行路由控制 节点:主…...

React组件进阶之children属性,props校验与默认值以及静态属性static

React组件进阶之children属性,props校验与默认值以及静态属性static 一、children属性二、props校验2.1 props说明2.2 prop-types的安装2.3 props校验规则2.4 props默认值 三、静态属性static 一、children属性 children 属性:表示该组件的子节点,只要组…...

ceph集群中RBD的性能测试、性能调优

文章目录 rados benchrbd bench-write测试工具Fio测试ceph rbd块设备的iops性能测试ceph rbd块设备的带宽测试ceph rbd块设备的延迟 性能调优 rados bench 参考:https://blog.csdn.net/Micha_Lu/article/details/126490260 rados bench为ceph自带的基准测试工具&am…...

texshop mac中文版-TeXShop for Mac(Latex编辑预览工具)

texshop for mac是一款可以在苹果电脑MAC OS平台上使用的非常不错的Mac应用软件,texshop for mac是一个非常有用的工具,广泛使用在数学,计算机科学,物理学,经济学等领域的合作,这些程序的标准tetex分布特产…...

简单认识redis高可用实现方法

文章目录 一、redis群集三种模式二、 Redis 主从复制1、简介2、作用:3、流程:4.配置主从复制 三、Redis 哨兵模式1、简介2、原理:3、作用:4、哨兵结构由两部分组成,哨兵节点和数据节点:5、故障转移机制:6、…...

搭建git服务器

1.创建linux账户,创建文件 adduser git passwd gitpsw su git pwd cd ~/ mkdir .ssh cd ~/.ssh touch authorized_keys 2.特别重要(单独起一行),给文件设权限 chmod 700 /home/git/.ssh chmod 600 /home/git/.ssh/authorized_keys 3.本地生产密钥并把…...

线程中断机制

如何中断一个线程? 首先一个线程不应该由其他线程来强制中断或者停止,而是应该由线程自己自行停止。所以我们看到线程的stop()、resume()、suspend()等方法已经被标记为过时了。 其次在java中没有办法立即停止一个线程,然而停止线程显得尤为重…...

CollectionUtils工具类的使用

来自:小小程序员。 本文仅作记录 org.apache.commons.collections包下的CollectionUtils工具类,下面说说它的用法: 一、集合判空 通过CollectionUtils工具类的isEmpty方法可以轻松判断集合是否为空,isNotEmpty方法判断集合不为…...

基于Nonconvex规划的配电网重构研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

yolo系列笔记(v4-v5)

YOLOv4 YOLOv4网络详解_哔哩哔哩_bilibili 网络结构,在Yolov3的Darknet的基础上增加了CSP结构。 CSP的优点: 加强CNN的学习能力 去除计算瓶颈。 减少显存的消耗。 结构为: 、 其实还是类似与残差网络的结构,保留下采样之前…...

小白如何高效刷题Leetcode?

文章目录 为什么会有这样的现象?研究与学习人生而有别 如何解决困境?1. 要补的:化抽象为具体,列举找规律2. 要补的:前人总结的套路3. 与人交流探讨4. 多写总结文章 总结 明明自觉学会了不少知识,可真正开始…...

使用IDEA打jar包的详细图文教程

1. 点击intellij idea左上角的“File”菜单 -> Project Structure 2. 点击"Artifacts" -> 绿色的"" -> “JAR” -> Empty 3. Name栏填入自定义的名字,Output ditectory 选择 jar 包目标目录,Available Elements 里右击…...

《MySQL 实战 45 讲》课程学习笔记(二)

日志系统:一条 SQL 更新语句是如何执行的? 与查询流程不一样的是,更新流程还涉及两个重要的日志模块:redo log(重做日志)和 binlog(归档日志)。 重要的日志模块:redo l…...

微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者

作为全新的神经网络架构,RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示,在语言建模任务上: RetNet 可以达到与…...

探索单例模式:设计模式中的瑰宝

文章目录 常用的设计模式有以下几种:一.创建型模式(Creational Patterns):二.结构型模式(Structural Patterns):三.行为型模式(Behavioral Patterns):四.并发…...

Bobo String Construction 2023牛客暑期多校训练营4-A

登录—专业IT笔试面试备考平台_牛客网 题目大意&#xff1a;给出一字符串t&#xff0c;求一个长为n的字符串&#xff0c;使tst中包含且仅包含两个t 1<n<1000;测试样例组数<1000 思路&#xff1a;一开始很容易想到如果t里有1&#xff0c;s就全0&#xff0c;否则s就全…...

量子噪声环境下资源恢复实验与NISQ计算优化

1. 量子噪声环境下的资源恢复实验概述在当前的含噪声中等规模量子&#xff08;NISQ&#xff09;计算时代&#xff0c;量子硬件面临的最大挑战之一是如何在存在显著噪声的情况下保持量子态的相干性和有用性。我们设计了一系列实验来探究噪声对量子资源&#xff08;如纠缠和魔法态…...

Beyond Compare 5激活密钥生成器:3种简单方法获取永久授权

Beyond Compare 5激活密钥生成器&#xff1a;3种简单方法获取永久授权 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的30天试用期到期而烦恼吗&#xff1f;想要免费解锁…...

微信QQ语音解码终极指南:silk-v3-decoder免费解锁音频文件

微信QQ语音解码终极指南&#xff1a;silk-v3-decoder免费解锁音频文件 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. …...

3分钟完成缠论分析:ChanlunX通达信插件实现自动画中枢

3分钟完成缠论分析&#xff1a;ChanlunX通达信插件实现自动画中枢 【免费下载链接】ChanlunX 缠中说禅炒股缠论可视化插件 项目地址: https://gitcode.com/gh_mirrors/ch/ChanlunX 还在为缠论分析的手动画线而烦恼吗&#xff1f;ChanlunX缠论插件为你带来终极解决方案&a…...

Python量化投资终极指南:MOOTDX让通达信数据获取变得如此简单

Python量化投资终极指南&#xff1a;MOOTDX让通达信数据获取变得如此简单 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 还在为股票数据的获取而烦恼吗&#xff1f;你是否曾经花费数小时研究复杂…...

NVIDIA Profile Inspector:解锁显卡700+隐藏设置的终极优化指南

NVIDIA Profile Inspector&#xff1a;解锁显卡700隐藏设置的终极优化指南 【免费下载链接】nvidiaProfileInspector 项目地址: https://gitcode.com/gh_mirrors/nv/nvidiaProfileInspector 你是否曾疑惑&#xff0c;为什么同一款显卡在不同游戏中表现天差地别&#xf…...

Joy-Con Toolkit:深度解析开源手柄控制框架的技术实现与高级应用

Joy-Con Toolkit&#xff1a;深度解析开源手柄控制框架的技术实现与高级应用 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit是一款基于hidapi库开发的开源手柄控制框架&#xff0c;专为任天堂Jo…...

Layerdivider:用AI智能解构插画,让PSD图层分离变得轻而易举

Layerdivider&#xff1a;用AI智能解构插画&#xff0c;让PSD图层分离变得轻而易举 【免费下载链接】layerdivider A tool to divide a single illustration into a layered structure. 项目地址: https://gitcode.com/gh_mirrors/la/layerdivider 在数字艺术创作中&…...

easyPoi使用

一、核心定位区别 EasyPoi&#xff1a;全能型&#xff0c;支持 Excel、Word、PDF 导出&#xff0c;注解极简&#xff0c;适合小数据、快速开发EasyExcel&#xff1a;高性能型&#xff0c;只专注 Excel&#xff0c;主打低内存、大数据量&#xff0c;适合海量数据导出 二、Easy…...

跟着 MDN 学CSS day_7:(层叠优先级与继承)

CSS的全称是层叠样式表&#xff08;Cascading Style Sheets&#xff09;&#xff0c;其中"层叠"这个词绝非随意选用的。理解层叠、优先级和继承这三个核心概念&#xff0c;是真正掌握CSS的关键所在。当你发现某个样式没有按预期生效时&#xff0c;十有八九是这三个机…...