01-go基础-07-map(声明map、初始化map、map赋值、遍历map、判断key是否在map中、删除map成员)

news2024/11/22 11:02:07

文章目录

  • 1. 声明 map
  • 2. 初始化 map
  • 3. map赋值
    • 3.1 直接声明并赋值
    • 3.2 分别定义每一组键值对
  • 4. 遍历map
  • 5. 判断key是否在map中
  • 6. 删除成员(delete())

1. 声明 map

  • 语法
var MapName map[keyType]valueType
  • 语法示例
var warlords map[string]string
  • 仅声明的map为空
package main

import "fmt"

func main() {
	var warlords  map[string]string
	if warlords == nil {
		fmt.Printf("map为空")
	}else{
		fmt.Printf("map为:%+v",warlords)
	}
}

结果

map为空

2. 初始化 map

  • 语法
MapName := make(map[keyType]valueType)
  • 语法示例
warlords := make(map[string]string)
  • 初始化之后,map不为空
package main
import "fmt"

func main() {
	warlords := make(map[string]string)
	if warlords == nil {
		fmt.Printf("map为空")
	}else{
		fmt.Printf("map为:%+v",warlords)
	}
}
  • 结果显示
map为:map[]

3. map赋值

3.1 直接声明并赋值

在函数内可以直接声明并赋值

  • 语法
mapName := map[string]string{key1:value1,key2:value2……}
  • 语法示例
var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
  • 完整示例
package main

import "fmt"

func main() {
	var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
	if warlords == nil {
		fmt.Printf("map为空")
	}else{
		fmt.Printf("map为:%+v",warlords)
	}
}

结果

map为:map[刘备:徐州 刘表:荆州 袁绍:河北 马腾:西凉]

说明:
如上可见,map是没有顺序的,打印出的结果和我们赋值的顺序并不一致。

3.2 分别定义每一组键值对

  • 语法
MapName[key1] = value1
  • 语法示例
	warlords["孙权"] = "江东"
  • 完整示例
package main
import "fmt"

func main() {
	//warlords := make(map[string]string)
	var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
	warlords["孙权"] = "江东"
	fmt.Printf("map为:%+v",warlords)
}

语法

map为:map[刘备:徐州 刘表:荆州 孙权:江东 袁绍:河北 马腾:西凉]

4. 遍历map

  • 语法
for key,value := range MapName {
	……
	}
  • 完整示例
package main

import "fmt"

func main() {
	var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
	for name,territory := range warlords {
		fmt.Println(name,":",territory)
	}
}

结果

刘备 : 徐州
袁绍 : 河北
马腾 : 西凉
刘表 : 荆州

5. 判断key是否在map中

  • 语法
if value,ok := MapName[key];ok{
    ……
}
  • 完整示例
package main

import "fmt"

func main() {
	//定义map
	var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
	//查询刘备的信息
	SearchTerritory("刘备",warlords)
    //查询曹操的信息
	SearchTerritory("曹操",warlords)
}

// SearchTerritory 定义一个查询函数
func SearchTerritory(name string,warlords map[string]string)(){
	if territory,ok := warlords[name];ok {
		fmt.Printf("===========================\n%q 的信息已查到\n势力范围:%q\n",name,territory)
	}else{
		fmt.Printf("===========================\n未查到 %q 的信息",name)
	}
}

结果

===========================
"刘备" 的信息已查到
势力范围:"徐州"
===========================
未查到 "曹操" 的信息

6. 删除成员(delete())

  • 语法
delete(MapNam, key)
  • 语法示例

  • 4.2 示例
package main

import "fmt"

func main() {

	var warlords  = map[string]string{"刘备":"徐州","袁绍":"河北","马腾":"西凉","刘表":"荆州"}
	fmt.Println("原map:",warlords)

	delete(warlords,"刘表")
	fmt.Println("现map:",warlords)

}

结果

原map: map[刘备:徐州 刘表:荆州 袁绍:河北 马腾:西凉]
现map: map[刘备:徐州 袁绍:河北 马腾:西凉]

在这里插入图片描述

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

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

相关文章

Eureka 服务端搭建入门与集群搭建

前言 Eureka在2022年已经确定的是,2.x版本开源计划已经停止了,1.x版本陆陆续续还是有人在维护的。还有很多最早使用微服务的公司还在继续用着eureka作为注册中心,也是很多同学学习微服务的敲门砖。 搭建Eureka服务端 创建一个平平无奇的ma…

2203 CSDN课程-python入门课

Python入门课,较为基础。 1 简介 1.1 前言 事实上,Python已经走过很多年的发展历程了,笔者最一开始学习的时候还是2.x版本,现在早就3.xx版本了。在当提笔,不是青春年少。确实是这样,我记得是2018年开始接…

【Linux从入门到放弃】Linux权限详解

🧑‍💻作者: 情话0.0 📝专栏:《Linux从入门到放弃》 👦个人简介:一名双非编程菜鸟,在这里分享自己的编程学习笔记,欢迎大家的指正与点赞,谢谢! L…

m基于遗传优化的复杂工序调度matlab仿真,输出甘特图和优化收敛图

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 遗传算法 (Genetic Algorithm,GA) 是一种基于规律进化的随机优化搜索算法,该算法最早是由Holland在1975年提出的。遗传算法的主要优势是通过对目标对象进行优化操作&#…

力扣-234-回文链表

回文链表 CategoryDifficultyLikesDislikesalgorithmsEasy (52.70%)1576- TagsCompanies给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入&#xff…

FTP文件传输服务

FTP 服务概述2-1 FTP连接及连接模式 控制连接:TCP 21,用于发送FTP命令信息 数据连接:TCP 20,用于上传、下载数据 数据连接的建立类型 主动模式:服务端从 20 端口主动向客户端发起连接 被动模式:服务端在指…

SIM8262E-M2,SIM8262A-M2,SIM8260C-M2,SIM8260C 5G定位模组支持多频段

SIM8262:支持R16标准的5G模组,支持多频段5G NR / LTE-FDD / LTE TDD / HSPA,支持SA和NSA双组网模式,高达 2.4Gbps的数据传输;扩展能力强,接口丰富,包括PCIe、USB3.1、GPIO等。该模块为客户的应用…

Polygon zkEVM中的子约束系统

1. 引言 前序博客有: Polygon zkEVM工具——PIL和CIRCOM Polygon zkEVM中主要设计了3种子约束系统: 1)Permutation check子约束系统:PIL中的关键字为is。 2)Plookup 子约束系统:PIL中的关键字为in。 …

数据结构——栈,队列,及其结构特点应用。

​✅<1>主页&#xff1a;我的代码爱吃辣 &#x1f4c3;<2>知识讲解&#xff1a;数据结构——栈&#xff0c;队列。 &#x1f525;<3>创作者&#xff1a;我的代码爱吃辣 ☂️<4>开发环境&#xff1a;Visual Studio 2022 &#x1f3e1;<5>系统环境…

路由查找原理

最近在设计Netflow采集系统时&#xff0c;我想要将客户端的公网IP根据IP库转为对应的国家&#xff0c;此外在CACHE机房中&#xff0c;交换机上是没有AS信息的&#xff0c;因此我们也需要根据IP去查路由库&#xff0c;转换出AS信息。 这两个问题的本质是类似的&#xff0c;无论是…

棱镜七彩作为首批成员单位入选工信部网络安全产业发展中心重点实验室!

近日&#xff0c;工信部网络安全产业发展中心公布了网络安全技术与产业发展工信部重点实验室专项工作组成员单位名单。棱镜七彩首批入选&#xff0c;成为信息技术应用创新基础软硬件安全工作组的成员单位&#xff01; 为深入贯彻落实网络强国战略&#xff0c;充分发挥网络安全技…

FOC控制之小A小B小C是如何追求小D的

1、写在前面 随着电动汽车的热火&#xff0c;关于FOC控制技术的文章这几年在网络上可谓是一搜一大把&#xff0c;各种理论分析&#xff0c;公式推导&#xff0c;应有尽有。通过这些文章&#xff0c;可以看出大佬还是很多的。另外也有FOC的开源硬件。而在大几年前&#xff0c;第…

党务管理系统搭建,答题获积分,学习有好礼

党务管理系统搭建是以服务党员群众为目的的&#xff0c;然后通过互联网信息化手段&#xff0c;将党建工作与大数据等新技术融合&#xff0c;实现党建资源答题学习的数字化整合&#xff0c;也提升了党建科学化水平。 党务管理系统搭建助力党建数字化、规范化&#xff1a;利用信息…

快来生成你专属的英文名吧(使用字符级RNN)!

目录 一.前言 二.准备数据 三.构造神经网络 四.训练 五.网络采样&#xff08;预测&#xff09; 一.前言 数据集为18个国家的姓氏&#xff0c;任务是根据训练得到的模型&#xff0c;在给定国家类别和首字母后&#xff0c;能得到一个与该国人名非常相似的一个人名。 > …

openstack基本命令小结

文章目录Openstack0、进入1、查看日志日志位置日志格式举例2、CLI命令格式基本格式使用帮助3、命令文档&#xff08;常用&#xff09;4、基础组件的常用命令1、keystone查询类查看所有组件状态查看所有服务的状态查看域列表查看服务列表查看节点列表查询用户列表查询用户详细信…

用5G制造5G,中国电信打造“滨江模式”,助力电子信息制造产业升级

工业和信息化部近日印发《5G全连接工厂建设指南》&#xff0c;提出“十四五”时期&#xff0c;主要面向原材料、装备、消费品、电子等制造业&#xff0c;采矿、港口、电力等重点行业领域&#xff0c;加快5G全连接工厂建设。中国电信联合中兴通讯打造南京滨江智能工厂&#xff0…

Python第三方库之MedPy

1.MedPy简介 MedPy 是一个图像处理库和针对医学(如高维)图像处理的脚本集合&#xff0c;此处主要讨论利用该库计算常见的医学图像分割任务评价指标&#xff0c;如Dice、Jaccard、Hausdorff Distance、Sensitivity、Specificity、Positive predictive value等。 论文表格的表头…

docker部署的redis集群 添加节点(扩容)

上篇博文完成了在 docker 中部署 redis 多主多从集群&#xff1a;点这里 这篇博文说一下如何在集群基础上继续添加节点&#xff0c;也就是给集群扩容 博文中的命令出现的 111.111.111.111 均换成实际 IP 执行 创建要添加的一主一从容器 这里创建一个6377主节点和一个6378从节…

ArgoDB 5.1 正式发布:多模融合、实时分析和数据安全多重升级

Transwarp ArgoDB是星环科技自主研发的高性能分布式分析型数据库&#xff0c;在PB级数据量上提供极致的数据分析能力。ArgoDB支持标准SQL语法和分布式事务&#xff0c;提供高并发高速数据写入、复杂查询、多模分析、数据联邦、隐私计算和动态脱敏等能力。基于星环科技ArgoDB数据…

怎么自由裁剪图片大小?分享一款在线图片编辑工具

工作的时候常常需要用图片编辑工具把图片裁剪为我们想要的大小&#xff0c;但下载处理图片软件又耗费时间&#xff0c;那么有没有比较快捷的修改图片的方法呢&#xff1f;其实我们可以用在线图片处理&#xff08;在线ps 图片编辑制作工具 免费照片编辑器_压缩图&#xff09;工具…