go map
创始人
2025-05-31 13:04:07
0

map是无序,非线程安全的,若想使用线程安全的map,使用sync.Map

一、map使用

1. 初始化

直接初始化

	var m = map[int]int{}m[1] = 1fmt.Println(m[1])

使用make初始化(常用)
 

	m := make(map[int]int)m[1] = 1fmt.Println(m[1])

2.判断key是否存在

ok为false时,代表key不存在

	m := make(map[int]int)m[1] = 1value, ok := m[1]if !ok {fmt.Println("key不存在")} else {fmt.Println(value)}

3.遍历map

遍历map时,可以同时得到key和value

	m := make(map[int]string)m[1] = "A"m[2] = "B"//结果为://key: 1, value: A//key: 2, value: Bfor k, v := range m {fmt.Println(fmt.Sprintf("key: %d, value: %s", k, v))}

二、map key

map key的选择:只要能比较就可以。除了常见的int、string,还可以是自定义结构体。

map key不能是 slice,map,function,结构体包含这些元素也不可以,会提示

Invalid map key type: comparison operators == and != must be fully defined for the key type

三、map原理

map源代码: src/runtime/map.go

原理可以看这一篇

深入理解Golang Map原理_golang map实现原理_天涯泛孤舟的博客-CSDN博客

相关内容

热门资讯

深夜,巨子生物突发声明:接受检... 每经编辑|金冥羽 巨子生物旗下重组胶原蛋白品牌可复美产品成分争议持续发酵。 6月1日22点32分,...
新修订的《快递暂行条例》6月1... 6月1日起,《国务院关于修改〈快递暂行条例〉的决定》正式施行。此次修改,专门增加了“快递包装”章节,...
开放“以债换房”政策,可直接置... “南京网络辟谣”微信公众号6月1日发文称,近日,有“南京二手房零首付李经理”“合肥瑶珺房地产代理有限...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
基于TDesign风格的Bla... 作为一名Web开发人员,开发前端少不了使用JavaScript,而Bla...
前端学习第三阶段-第4章 jQ... 4-1 jQuery介绍及常用API导读 01-jQuery入门导读 02-JavaScri...
《成都市体育发展条例》6月1日... 新华网成都6月1日电 6月1日,《成都市体育发展条例》(以下简称《条例》)开始实施。成都市体育局局长...
LCD1602液晶显示屏模块资... 模块实例https://blog.csdn.net/qq_38393591/article/deta...
基于微信小程序的小区疫情防控小... 文末联系获取源码 开发语言:Java 框架:ssm JDK版本ÿ...