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博客

相关内容

热门资讯

“男子持刀入室盗窃”视频引发关... 近日,一段疑似“小偷”入室盗窃被业主家中监控拍下的视频在网上引发关注。11月21日晚,“翠屏公安”微...
绝不允许日本军国主义幽灵复活!... 2025年11月7日,日本首相高市早苗宣称,如果中国大陆对台湾出动军舰并使用武力,可能会构成“存亡危...
【解决】AI法律助手荣获202... 2025全球数字经济大会启幕,搭建国际数字合作高端平台 经国务院批准,由北京市人民政府、国家互联网信...
嘉兴男子与妻争吵,突然将行李箱... 近日,浙江嘉兴一对夫妻因琐事发生争吵,丈夫突然将装满衣物的行李箱从6楼扔到楼下,引发关注。11月22...
三地107家律所齐聚丰台,京津... 11月22日,京津冀律师驿站举办“党建业务深度融合 促进行业规范发展”主题活动,发布“百千万行动计划...
家装预付资金安全困局如何破解,... 家装预付资金安全困局如何破解 专家提出:建立“先验收后付款”装修资金存管制度 预交数万元甚至数十万元...
工行安康解放路支行积极开展《反... 为深入贯彻落实《国家金融监督管理总局安康监管分局办公室关于开展<反有组织犯罪法>宣传活动的通知》要求...
重庆公布育儿补贴制度实施方案 原标题:每孩每年3600元 重庆公布育儿补贴制度实施方案 11月21日,记者了解到,市卫生健康委、市...
十五运会组委会在深总结本届赛事... 深圳新闻网2025年11月22日讯(深圳报业集团记者 林炜航)11月21日,十五运会组委会在深圳市民...