golang学习笔记——使用映射

文章目录

  • 使用映射
  • 声明和初始化映射
  • 添加项
  • 访问项
  • 删除项
  • 映射中的循环

使用映射

Go 中的映射是一个哈希表,是键值对的集合。 映射中所有的键都必须具有相同的类型,它们的值也是如此。 不过,可对键和值使用不同的类型。 例如,键可以是数字,值可以是字符串。 若要访问映射中的特定项,可引用该项的键。

声明和初始化映射

package mainimport "fmt"func main() {studentsAge := map[string]int{"john": 32,"bob":  31,}fmt.Println(studentsAge)
}

如果不想使用项来初始化映射,可使用内置函数 make() 在上一部分创建映射。 可使用以下代码创建空映射:

studentsAge := make(map[string]int)

添加项

package mainimport "fmt"func main() {studentsAge := make(map[string]int)studentsAge["john"] = 32studentsAge["bob"] = 31fmt.Println(studentsAge)
}

访问项

在 Go 中,映射的下标表示法可生成两个值。 第一个是项的值。 第二个是指示键是否存在的布尔型标志。

package mainimport "fmt"func main() {studentsAge := make(map[string]int)studentsAge["john"] = 32studentsAge["bob"] = 31age, exist := studentsAge["christy"]if exist {fmt.Println("Christy's age is", age)} else {fmt.Println("Christy's age couldn't be found")}
}

输出

Christy's age couldn't be found

删除项

若要从映射中删除项,请使用内置函数 delete()。 下例演示了如何从映射中删除项:

package mainimport "fmt"func main() {studentsAge := make(map[string]int)studentsAge["john"] = 32studentsAge["bob"] = 31delete(studentsAge, "christy")fmt.Println(studentsAge)
}

输出

map[bob:31 john:32]

果你尝试删除不存在的项,Go 不会执行 panic。

映射中的循环

将键保存在 name 变量中,将值保存在 age 变量中。 因此,range 会首先生成项的键,然后再生成该项的值。 可使用 _ 变量忽略其中任何一个,如下例所示:

package mainimport ("fmt"
)func main() {studentsAge := make(map[string]int)studentsAge["john"] = 32studentsAge["bob"] = 31for _, age := range studentsAge {fmt.Printf("Ages %d\n", age)}
}

因为,range 会首先生成项的键,然后再生成该项的值。所以,也可以这样

package mainimport ("fmt"
)func main() {studentsAge := make(map[string]int)studentsAge["john"] = 32studentsAge["bob"] = 31for name := range studentsAge {fmt.Printf("Names %s\n", name)}
}

输出

Names john
Names bob

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

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

相关文章

Apach Ozone部署

前言 最近由于工作需要,要部署一套ozone。我自己对hadoop这套体系不是很熟悉,所以过程磕磕碰碰,好不容易勉强搭起来,所以记录一下部署方式 准备 三台主机,主机均已安装jdk、hdfs,相关的安装配置就不另外写…

python二叉树链树_树的链式存储结构

二叉链树是一种树状数据结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。每个节点包含一个数据元素和指向其左右子节点的指针。二叉链树可以是空树,也可以是具有以下特点的非空树: 1. 每个节点最多有两个子节点。…

netstat

netstat 命令用于显示网络状态 参数说明: -a或--all 显示所有连线中的Socket,默认不显示LISTEN相关 -n 拒绝显示别名,能显示数字的全部转化成数字 -e或--extend 显示网络扩展信息(User,Inode) -p或--programs 显示正在使用So…

计算机组成原理 the one day

1.计算机系统硬件软件 cpu运算器控制器 1个字(word)16bit; difference 1个字节(Byte)bit; 2.cpu主频(时钟频率)1/cpu时钟周期 CPI执行一条指令所需的时间周期数。 执行一条程序的…

JavaEE 多线程01

为什么引入多线程? 首先进程已经能很好的完成多任务这个情景下的并发编程了,那为什么又引入多线程呢? 这是因为在一些情景下,我么需要大量的创建和销毁进程来完成一些任务,此时多进程对系统的开销就会很大了. 假设有这样一个场景,服务器同时接收到很多个服务请求,这个时候服务…

Python基础教程: sorted 函数

嗨喽,大家好呀~这里是爱看美女的茜茜呐 sorted 可以对所有可迭代的对象进行排序操作, sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。 从新排序列表。 👇 👇 👇 更多精彩机密、教程…

taro h5 ios解决input不能自动获取焦点拉起键盘

描述:页面中有个按钮,点击跳转到第二个页面(有input),能直接获取焦点拉起键盘输入 安卓: 直接用focus() ios: focus无效,必须手动拉起 原理: 点击按钮的时候拉起一…

一元三次方程求解——浮点数二分

题目描述 思路 根与根之差的绝对值>1。可以得出距离为1的区间最多只有一个根若存在2个数x1和x2&#xff0c;且x1 < x2&#xff0c;f(x1) x f(x2) < 0&#xff0c;则(x1, x2)之间一定有一个根我们可以遍历每一个区间为1的范围&#xff0c;先判断左端点是否是根&#x…

K8s client go 创建CRD的informer

背景 需要监听K8s中CRD资源的变动, 做出相应的处理, 需要针对 CRD资源建立informer 实现 dynamicClient 是 创建的K8s的client, 这里使用的是 Unstructured 接収的CRD的结果, 加工的时候使用了convertUnstructuredProject 加工了一下, convertUnstructuredProject 实现下面提…

如何进行网络通信和套接字编程?

网络通信和套接字编程 引言 网络通信是计算机科学中的重要概念&#xff0c;它使得不同计算机之间可以进行数据交换和信息传递。套接字编程是一种实现网络通信的方法&#xff0c;它提供了一套标准的接口&#xff0c;使得应用程序可以通过网络进行数据传输。本文将详细介绍网络…

Python---global关键字---设置全局变量

global 英 /ˈɡləʊb(ə)l/ adj. 全球的&#xff0c;全世界的&#xff1b;全面的&#xff0c;整体的&#xff1b;&#xff08;计算机&#xff09;全局的&#xff1b;球形的 需求&#xff1a;如果有一个数据&#xff0c;在函数A和函数B中都要使用&#xff0c;该怎么办&…

【PyGIS】使用阿里AIEarth快速下载指定区域指定年份的土地利用数据

说明 中国逐年土地覆盖数据集(CLCD) 由武汉大学的杨杰和黄昕教授团队基于Landsat影像制作了中国逐年土地覆盖数据集(annual China Land Cover Dataset, CLCD),数据包含1985—2021年中国逐年土地覆盖信息。研究团队基于Landsat长时序卫星观测数据,构建时空特征,结合随机森…

Linux常用命令——blockdev命令

在线Linux命令查询工具 blockdev 从命令行调用区块设备控制程序 补充说明 blockdev命令在命令调用“ioxtls”函数&#xff0c;以实现对设备的控制。 语法 blockdev(选项)(参数)选项 -V&#xff1a;打印版本号并退出&#xff1b; -q&#xff1a;安静模式&#xff1b; -v&…

蓝桥杯官网填空题(重合次数)

问题描述 在同一天中, 从上午 6 点 13 分 22 秒到下午 14 点 36 分 20 秒, 钟表上的 分针和秒针一共重合了多少次? 注意时针、分针、秒针都围绕中心敳匀速运动。 答案提交 这是一道结果填空的题&#xff0c;你只需要算出结果后提交即可。本题的结果为一 个整数, 在提交答案…

【正则插件】前端正则插件以及预览插件推荐

1&#xff09; 2&#xff09; any-rule Pegex Previewer 下载好插件之后 在代码层右键选择 选择你需要的正则表达式&#xff0c;随后可以使用第二个插件 正则表达式插入之后顶部会有 Test Regex.. 点击会出现以下内容 将他 ctrl a 删除&#xff0c;输入你对应的正则表达…

@Validated注解的作用代码示例

当使用Spring框架进行参数验证时&#xff0c;可以通过Validated注解来触发参数验证。以下是一个简单的示例&#xff0c;演示了如何在Spring控制器中使用Validated注解来验证请求的参数&#xff1a; 首先&#xff0c;假设有一个简单的User类作为请求的数据模型&#xff1a; pu…

电脑序列号查询

电脑序列号是厂商给每台电脑分配的一个产品识别码&#xff0c;也称为S/N&#xff08;Serial Number&#xff09;。主要用来查询电脑的出厂日期、保修状态、生产产地、产品配置等信息。电脑序列号查询有以下几种方法&#xff1a; 1、电脑机箱外壳&#xff1b; 2、系统信息/命令…

前端下载文件链接

前端下载文件链接 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </hea…

CSS 文字溢出:ellipsis在IE上不起效果

单行文本的溢出显示省略号 p {overflow: hidden;text-overflow: ellipsis;white-space: nowrap; }多行文本的溢出显示省略号 方法一&#xff1a; p {display: -webkit-box;-webkit-box-orient: vertical;-webkit-line-clamp: 3;overflow: hidden;text-overflow: ellipsis; }…

梁培强:塑造下一代投资高手

在当前全球经济动荡和金融市场快速变化的背景下&#xff0c;梁培强的投资教育计划不仅仅是一套课程&#xff0c;它是对传统投资理念的深度挑战和革新。梁培强&#xff0c;拥有超过二十年金融行业经验的资深分析师&#xff0c;正在引领一场投资者教育的变革&#xff0c;旨在培养…