Go中优雅的获取Map元素的多种方法

2023-05-16

Go语言获取map元素教程

Go 语言 中要获取 map 中的元素,除了使用 遍历 的方式,我们还可以使用 key 做为索引的形式来获取 map 指定 key 的元素。

根据 map 的 key 获取 map 的元素,返回两个返回值,第一个返回值是获取的值,如果 key 不存在,返回空值,第二个参数是一个 bool 值,表示获取值是否获取成功。

如果我们只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value,如果我们需要判断一个 map 中的 key 是否存在,那么我们可以使用 _ 忽略返回的第一个值,然后判断返回的第二个 bool 值为 true 还是 false。

Go语言获取map元素

语法

value, isOk := mapName[key]

参数

参数描述
mapName要获取元素的 map。
key要获取的键。

返回值

返回值描述
value获取到的值。
isOk是否获取到值,获取到则返回 true,否则,返回 false。

说明

根据 map 的 key 获取 map 的元素,第一个返回值是获取的值,第二个参数是一个 bool 值,表示获取值是否获取成功。

Go语言获取map的值

语法

value := mapName[key]

说明

只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value。

Golang判断map key是否存在

语法

if _, isOk := mapName[key]; isOk{
}else{
}

说明

我们使用 _ 忽略返回的第一个值,然后判断返回的第二个 isOk 值为 true 还是 false,如果为 true,则表明 key 存在,否则 key 不存在。

案例

根据key获取map元素

使用 [] 加上 key 的形式,获取 map 的元素

package main
import (
	"fmt"
)
func main() {
	fmt.Println("嗨客网(www.haicoder.net)")
	//使用 [] 加上 key 的形式,获取 map 的元素
	mapHaiCoder := map[string]string{
		"Server":"Golang",
		"JavaScript":"Vue",
		"Db":"Redis",
	}
	value, isOk := mapHaiCoder["Server"]
	fmt.Println("Value =", value, "IsOk =", isOk)
}

程序运行后,控制台输出如下:

Value = Golang IsOK = true

我们使用初始化的方式创建了一个有三个元素的 map,使用 [] 加上 key 的形式,获取 map 的 key 为 “Server” 的元素的值。

map 返回了两个值,第一个是 key 所对应的值,第二个是 key 是否存在的标志,isOk 为 true,表明 key 存在。

根据 key 获取 map 值

使用 [] 加上 key 的形式,获取 map 的 key 对应的元素的值

package main
import (
	"fmt"
)
func main() {
	fmt.Println("嗨客网(www.haicoder.net)")
	//使用 [] 加上 key 的形式,获取 map 的 key 对应的元素的值
	mapHaiCoder := map[string]string{
		"Server":"Golang",
		"JavaScript":"Vue",
		"Db":"Redis",
	}
	value := mapHaiCoder["Server"]
	value2 := mapHaiCoder["NotExist"]
	fmt.Println("Value =", value, "Vaules =", value2)
}

程序运行后,控制台输出如下:

Value = Golang Values =

我们使用初始化的方式创建了一个有三个元素的 map,使用 [] 加上 key 的形式,获取 map 的 key 为 “Server” 的元素的值。

我们只用一个值来接受 map 的返回值,那么返回的就是 key 所对应的的 value,如果 key 不存在,返回空。

判断map的key是否存在

使用 [] 加上 key 的形式,获取 map 的元素的第二个参数,判断 key 是否存在

package main
import (
	"fmt"
)
func main() {
	fmt.Println("嗨客网(www.haicoder.net)")
	//使用 [] 加上 key 的形式,获取 map 的元素的第二个参数,判断 key 是否存在
	mapHaiCoder := map[string]string{
		"Server":"Golang",
		"JavaScript":"Vue",
		"Db":"Redis",
	}
	value, isOk := mapHaiCoder["Server"]
	value2, isOk2 := mapHaiCoder["Server2"]
	fmt.Println("Value =", value, "IsOk =", isOk)
	fmt.Println("Value2 =", value2, "IsOk2 =", isOk2)
}

程序运行后,控制台输出如下:

Value = Golang IsOK = true
Value2 = IsOk2 = false

使用 key 索引的形式访问 map 的元素,返回两个值,第一个是 key 对应的元素值,第二个是一个 bool 值,表示该 key 是否存在。

我们通过第二个返回的 bool 值的真假可以判断 map 中的 key 是否存在,如果为 true,表明 map 中的 key 存在,如果为 false,表明 map 中的 key 不存在。

Go语言map遍历总结

根据 map 的 key 获取 map 的元素,返回两个返回值,第一个返回值是获取的值,如果 key 不存在,返回空值,第二个参数是一个 bool 值,表示获取值是否获取成功。

如果我们只使用一个值,接受 map 的返回值,那么返回的 map 的 key 对应的 value。for range 循环遍历 map 语法:

for key, value := range mapName{
}

for range 循环遍历 map key 语法:

for key := range mapName{
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Go中优雅的获取Map元素的多种方法 的相关文章

随机推荐

  • Python——各类品牌库爬虫Demo

    解决方案 源代码 xff1a https gitee com shentuzhigang mini project tree master brand crawler 唯品会 span class token keyword import
  • 大学阶段总结

    总结一下自己的大学生活 学业 大一基本上是在课业学习和ACM训练的平稳有序的生活中度过 xff0c 也没干什么其他事了 上课学习学习 xff0c 错 xff0c 玩玩手机 xff0c 所以我两个学期的高数都是最后靠老师拉到及格 xff0c
  • 人生规划(Flag)

    生活 房 xff08 杭州住宅428w xff0c 商业128w xff0c 老家128w xff09 车 xff08 32w xff09 存款 xff08 100w xff09 结婚 在杭州干十年 xff0c 先赚个首付 xff0c 再根
  • 博客停更声明

    本博客自2022年7月1日起 xff0c 不再新增内容 之后所有新增文章将push到GitHub中 xff0c 再通过Vuepress以GitHub Page的形式发布 历史文章根据需要迁移与更新 个人网站如下 xff1a 申屠志刚 htt
  • vnc连接成功后黑屏的问题

    新弄了一个服务器 安装各种服务 装VNC遇到问题 黑屏 网上找了各种方式均为解决 最终探索出了如下解决方法 1 修改 vnc xstartup文件 首先文件权限最好设置为777 原来为 只看最后 if f etc X11 xinit xin
  • 资源-Windows10-2020原版镜像下载地址(20H2)以及1809、1803、1709

    说明 Windows10 2020原版镜像下载地址 xff08 20H2 xff09 以及Windows10 1809企业LTSC版下载地址 PS xff1a 何为LTSC版 LTSC版即为长期服务版 xff08 你也可以理解成企业精简版
  • 交通标志识别

    原文链接 xff1a https blog csdn net Mind programmonkey article details 93194997
  • 关于YOLOv3的一些细节

    原文链接 xff1a https www jianshu com p 86b8208f634f 本文是我对YOLO算法的细节理解总结 xff0c 本文的阅读前提是已读过YOLO相关论文 xff0c 文中不会谈及YOLO的发展过程 xff0c
  • Giou YOLOv3 | CVPR2019,通用,更优的检测框损失函数

    这篇论文提出的GIou损失函数 xff0c 是一种目标检测领域用于回归目标框损失函数 该Trick适用于任何目标检测算法 本文以YOLOv3为例进行阐述 论文 xff1a Generalized Intersection over Unio
  • ubuntu18.04+CUDA10+caffe+openpose环境配置与应用

    最近老板谈到了一个项目 xff0c 需要通过人的行为姿势来初步判断人在干嘛 xff0c 然后我就找到了openpose xff0c 找到源码之后 xff0c 我又粗略的看了下别人写的相关博客还有其他资料 xff0c 觉得也没什么大不了 xf
  • ubuntu18.04安装tensorflow-gpu报错

    今天因工作需要 xff0c 就打算在ubuntu系统上安装tensorflow gpu 刚开始我就直接在中断输入 pip install tensorflow gpu 61 61 1 13 1 但是发现下载速度炒鸡慢 xff0c 关键是下载
  • ubuntu18.04安装ROS Melodic的安装与卸载

    step1 设置软件源 sudo sh c 39 echo 34 deb http packages ros org ros ubuntu lsb release sc main 34 gt etc apt sources list d r
  • Win10上yolov3的配置及使用教程(VS2019)

    yolo论文翻译 或https zhuanlan zhihu com p 35023499 yolo官网 目录 硬件环境 安装教程 安装CUDA和cuDNN 下载darknet 修改darknet vcxproj 修改darknet sln
  • LabelImg的安装出现No module named 'libs.resources'错误

    如果出现No module named libs resources xff0c 直接看第7点 1 下载labelImg github地址 xff1a https github com tzutalin labelImg 34 34 34
  • Github网站重定向到自己的域名访问

    不多说 xff0c 上干货 xff01 首先你得有一个能访问搭建好的仓库网站 xff0c 而且是可视化的 如果没有请自行百度 xff01 开始 xff01 第一步 xff1a 打开你的Settings xff08 设置 xff09 xff0
  • web项目管理系统的设计

    简介 某某管理系统 xff08 员工信息 xff0c 学生成绩 xff0c 办事流程等等 xff09 应该是很多web开发者最先接触到的项目之一 xff0c 也是许多非科技企业主要维护的项目 xff0c 可以说是学习web项目最佳练手工具
  • 联邦学习算法介绍-FedAvg详细案例-Python代码获取

    联邦学习算法介绍 FedAvg详细案例 Python代码获取 一 联邦学习系统框架二 联邦平均算法 xff08 FedAvg xff09 三 联邦随梯度下降算法 FedSGD xff09 四 差分隐私随联邦梯度下降算法 DP FedSGD
  • 误勾掉Android studio4.2的Kotlin插件

    在更新安装插件时候勾掉了 Plugins中的Kotlin 重新启动时候 xff0c 导致安卓无法启动 xff0c 弹出警告 xff1a Missing Essential Plug org jetbrains android Please
  • Java中一个字符串去掉所有数字,只留下字母

    span class token keyword public span span class token keyword static span span class token keyword void span span class
  • Go中优雅的获取Map元素的多种方法

    Go语言获取map元素教程 Go 语言 中要获取 map 中的元素 xff0c 除了使用 遍历 的方式 xff0c 我们还可以使用 key 做为索引的形式来获取 map 指定 key 的元素 根据 map 的 key 获取 map 的元素