一.语法基础

Go语言中 map的定义语法如下:

map[KeyType]ValueType

1.KeyType:表示键的类型

2.ValueType:表示键对应的值的类型。

map类型的变量默认初始值为nil,需要使用make()函数来分配内存:

make(map[KeyType]ValueType, [cap])

二.基本的使用

声明后添加元素:

func main() {scoreMap := make(map[string]int, 8)scoreMap["A"] = 50scoreMap["B"] = 100var a = scoreMap["A"] //可以给变量赋值fmt.Println(a)fmt.Println(scoreMap)fmt.Println(scoreMap["A"])fmt.Printf("type of a:%T\n", scoreMap)
}
/*结果:50map[A:50 B:100]50type of a:map[string]int
*/

声明时添加元素(这里写到外部):

var deploy = map[string]int{"A": 10,"B": 20,
}func main() {a := deploy["B"]fmt.Println(a)fmt.Println(deploy)
}

三.判断某个键是否存在(查)

基本格式:

 value, ok := map[key]

例子:

var deploy = map[string]int{"A": 10,"B": 20,"C": 30,
}func main() {v, ok := deploy["A"]//判断A是否存在if ok {fmt.Println(v)} else {fmt.Println("没有这个键") //10}a := deploy["B"]fmt.Println(a)      //20fmt.Println(deploy) //map[A:10 B:20]
}

四.遍历map

var deploy = map[string]int{"A": 10,"B": 20,"C": 20,
}func main() {deploy["D"] = 40for s, i := range deploy {fmt.Println(s, i)}
}

当只想遍历键或者值的时候

只遍历键:

    for s:= range deploy {fmt.Println(s)}

只遍历值:

for _, i := range deploy {fmt.Println(i)}

五.删除键值对

基本语法

    delete(map, key)
    map:表示要删除键值对的mapkey:表示要删除的键值对的键

示例

func main(){scoreMap := make(map[string]int)scoreMap["张三"] = 90scoreMap["小明"] = 100scoreMap["王五"] = 60delete(scoreMap, "小明")//将小明:100从map中删除for k,v := range scoreMap{fmt.Println(k, v)}
}

六.总结

//直接创建初始化一个map
var mapInit = map[string]string {"xiaoli":"湖南", "xiaoliu":"天津"}
//声明一个map类型变量,
//map的key的类型是string,value的类型是string
var mapTemp map[string]string
//使用make函数初始化这个变量,并指定大小(也可以不指定)
mapTemp = make(map[string]string,10)
//存储key ,value
mapTemp["xiaoming"] = "北京"
mapTemp["xiaowang"]= "河北"
//根据key获取value,
//如果key存在,则ok是true,否则是flase
//v1用来接收key对应的value,当ok是false时,v1是nil
v1,ok := mapTemp["xiaoming"]
fmt.Println(ok,v1)
//当key=xiaowang存在时打印value
if v2,ok := mapTemp["xiaowang"]; ok{fmt.Println(v2)
}
//遍历map,打印key和value
for k,v := range mapTemp{fmt.Println(k,v)
}
//删除map中的key
delete(mapTemp,"xiaoming")
//获取map的大小
l := len(mapTemp)
fmt.Println(l)

Go语言学习笔记:3 map相关推荐

  1. C语言如何加缓冲,C语言学习笔记之输出缓冲

    在c语言中经常用到输出函数printf,当我们像往常一样在输出函数中输入我们的想要的输出的东西后加\n换行 验证结果如我们输出的一样 如果我们在后面加入死循环会不会出现这些语句呢 结果卡死了,可还是输 ...

  2. Go语言学习笔记-数组、切片、map

    Go语言学习笔记-数组.切片.map 数组:同一数据类型元素的集合.是值类型,长度固定无法修改 声明格式:var 数组名字 [元素数量] 数据类型 var arr [3] int //声明定义了一个长 ...

  3. go get 拉取指定版本_go语言学习笔记-基础知识-3

    相关文档 go语言学习笔记-目录 1.简介 1.1 什么是GO Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易.Go是从2007年末由Robert Griesemer, Rob ...

  4. C语言学习笔记第五天_项目训练

    C语言学习笔记第五天_项目训练 添加自定义的一个函数库文件 <getch.h> 步骤: 1.在windows中把getch.h放入共享文件夹(文件我放在文末,自取) 2.在Ubuntu终端 ...

  5. 【Go语言 · 学习笔记】

    文章目录 Go语言 · 学习笔记 一.Go包管理 1. 什么是Go语言中的包 2. 包的命名 3. main包 4. 导入包 5. 远程包导入 6. 命名导入 7. 包的init函数 二.Go开发工具 ...

  6. (一)Go语言学习笔记

    Go语言学习笔记 1 前言 2 写Go语言需要注意的地方 2.1 Go语言编译执行和直接run的区别 2.2 Go语言的特点 2.3 Linux下配置Go环境变量 2.4 随记 3 go_code 3 ...

  7. golang-阅读雨痕大神的Go语言学习笔记的心得

    golang-阅读雨痕大神的Go语言学习笔记的心得 第一章 概述 1.1 go与java中的局部变量初始化问题 1.2 golang中实现生产者消费者模型,利用管道进行数据通信 第二章 类型 2.1 ...

  8. Dart 语言学习笔记(Dart语言完全指南)

    Dart 语言学习笔记 Part 1:概览 Dart是一门纯OOP语言.所有的类都继承于Object类.null也是对象,变量仅仅存储对象的引用 Dart是强类型语言,即使Dart可以进行类型推断(使 ...

  9. 梓益C语言学习笔记之链表&动态内存&文件

    梓益C语言学习笔记之链表&动态内存&文件 一.定义: 链表是一种物理存储上非连续,通过指针链接次序,实现的一种线性存储结构. 二.特点: 链表由一系列节点(链表中每一个元素称为节点)组 ...

  10. 6.方法(go语言学习笔记)

    6.方法(go语言学习笔记) 目录 定义 匿名字段 方法集 表达式 1. 定义 方法是与对象实例绑定的特殊函数. 方法是面向对象编程的基本概念,用于维护和展示对象的自身状态.对象是内敛的,每个实例对象 ...

最新文章

  1. Linux_正则表达式
  2. one or more of the ports are invalid. Open the server editor and correct the invalid ports
  3. 近世代数--置换群--判断置换的奇偶性
  4. 浅谈PostgreSQL的索引
  5. 上元节的灯会(亮)-dfs
  6. Friendly Group Gym - 102769F 2020(并查集)ccpc秦皇岛分站赛
  7. 开课吧java_开课吧javaee企业级开发工程师 十期
  8. C语言数组初始化的问题
  9. Judge Simple(判断-简单)
  10. 369寝室(数组、模拟)
  11. 代码合并工具_合并上千个Excel表格,1秒就能完成
  12. Hybrid App开发设计与实现
  13. 两大思维,就可以让你轻松完成任意一个目标
  14. Error while waiting for device: The emulator process for AVD Pixel_API_30 has terminated.
  15. 世界编程语言2008年初排行榜
  16. bat文件语法和技巧_这不是高手专利,一秒新建100个Excel文件
  17. rabbitmq高并发RPC调用,你Get到了吗?
  18. JavaScipt设计模式初探-代理模式(一)
  19. 用Kodi访问Win10共享文件夹
  20. 从零到壹搭建一个商城架构--性能指标

热门文章

  1. 有哪些将英文文献翻译成中文的工具
  2. 新电商法后微店淘宝等网店平台都要营业执照吗?
  3. 偏财入财库大富_八字有财库者大富,看看你命中有没有大财!
  4. win10 wubi linux,迁移Wubi安装的ubuntu到Win10纯净版
  5. 中鑫吉鼎|家庭理财如何正确规划
  6. 常用的幻灯片播放简单实现
  7. web获取照片EXIF信息(例如:拍照方向、相机设备型号、拍摄时间、ISO 感光度、GPS 地理位置等数据)
  8. 怎么让照片变年轻_如何使照片中的人物变的年轻(在Ps中调节的)?
  9. 外贸企业收集了几十万的客户邮箱,怎么群发邮件?
  10. 精益产品过程Step1:明确问题和目标用户