当前位置: 首页 > news >正文

GO 语言学习 之 Map

        map 是 Go 语言中非常重要的数据结构,常用于需要快速查找、统计或分组数据的场景。

map定义:

package mainimport "fmt"func main() {var m1 map[int]string            // 创建一个 mapm2 := make(map[int]string)       // 创建一个 map m3 := make(map[int]string, 10)   // 创建一个长度为 10 的 mapm4 := map[int]string {1:"1111", 2:"2222", 3:"3333"} // 创建并初始化 mapv, ok := m1[1]if ok {fmt.Println(v, ok)} else {fmt.Println(v, ok)}for key, value := range m1 {fmt.Println("m1 的内容 :", key, value)}fmt.Println(m1)fmt.Println(m2)fmt.Println(m3)fmt.Println(m4)
}

map 的特征:

  • map 是一种无序的键值对的集合
  • map 的重要用途是是通过 key 来快速检索数据,类似于hash值的效果,key 类似于索引,指向数据的值。
  • map 遍历 时返回的键值对的顺序是不确定的。
  • 在遍历map的时候,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 ""。
  • map 和切片一样,是引用类型。如果将map类型作为函数的参数,它们都引用同一个map。因此,对 map 的修改会影响到所有的引用。
  • map 的 key 不允许重复,重复对同一个 key 进行赋值,值将被覆盖,只保存最后一次赋值的内容

map的常见操作:

package mainimport "fmt"func main() {m1 := make(map [int]string)// 添加一个元素m1[1] = "1111"m1[2] = "2222"fmt.Println(m1)// 修改元素的值m1[1] = "壹壹壹壹"fmt.Println(m1)// map 的长度fmt.Println(len(m1))// 遍历 map *** 只能这么遍历,除非你单独存了一份 key 值,可以通过遍历 key 值,间接遍历了mapfor k, v := range m1 {fmt.Println("遍历 m1 ", k, v)}v, ok := m1[3]if !ok {fmt.Println("3 is not exist. v 的结果是零值 : ", v)}// 删除元素 (根据 key 删除某一个元素)delete(m1, 1)fmt.Println(m1)// 清空clear(m1)fmt.Println(m1)
}

http://www.dtcms.com/a/263588.html

相关文章:

  • 38.docker启动python解释器,pycharm通过SSH服务直连
  • DBeaver 设置阿里云中央仓库地址的操作步骤
  • AlpineLinux安装docker
  • 我认知的AI宇宙系列第三期
  • 车载Tier1 supplier梳理
  • 使用 collected 向 TDengine 写入数据
  • 论文中用matplotlib画的图,如何保持大小一致。
  • OpenWrt | 使用 Docker 运行 iperf3
  • 前后端Dockerfile
  • 2025年 UI 自动化框架使用排行
  • GeoTools 结合 OpenLayers 实现属性查询(二)
  • 嵌入式原理与应用篇---常见基础知识(10)
  • 【软考高项论文】论信息系统项目的进度管理
  • Spring-事务和事务传播机制
  • DFMEA检查表模板下载
  • 简单的 PyTorch 示例,可视化和解释 weight decay 的作用
  • 云上攻防—Docker安全容器逃逸特权模式危险挂载
  • 【C++】简单学——模板初阶
  • tauri v2 开源项目学习(一)
  • PSQL 处理 BLOB 类型数据问题
  • 华为云Flexus+DeepSeek征文 | ​​华为云ModelArts Studio大模型与企业AI会议纪要场景的对接方案
  • 数据库事务全面指南:概念、语法、机制与最佳实践
  • C++ 快速回顾(五)
  • 【冷知识】Spring Boot 配置文件外置
  • SpringBoot -- 自动配置原理
  • Bessel位势方程求解步骤
  • STL简介+string模拟实现
  • 「Java案例」计算矩形面积
  • 大数据(3)-Hive
  • 【算法】动态规划:1137. 第 N 个泰波那契数