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

go 语言之map

map

map 的声明

map 是key -value 数据结构,又称为字段或者关联数组。类似其他编程语言的集合;在编程中是经常使用到的

基本语法

var map 变量名, map[key type] valuetype

golang 中的map的key 可以是很多种类型,比如bool,数字,string,指针,channel,还可以是包含前面几个类型的接口,结构体,数组通常为int、string

注意 slice ,map 还有function不可以,是因为这几个没法用==来判断

valuetype 可以是什么类型

valuetype 的类型和key 基本一样,通常为数字(整型,浮点数)

声明map

   var a map[string]stringvar b map[string]intvar c map[int]stringvar d map[string]map[string]string

  注意声明不会分配内存的,初始化需要make,分配内存后才能赋值使用

 初始化

package mainimport "fmt"//"fmt"
func main(){var a map[string]string//声明a = make(map[string]string,10)//初始化a["a1"]= "宋江"a["a2"]= "吴用"a["a3"]= "吴用"a["a1"]= "武松"a["a4"]= "林冲"//v可以重复;无序的key-v结构gofmt.Println(a)
}
//执行结果
// PS D:\golang\goproject\src\src01\go_code\src> go run chapter08\deom01\main.go
// map[a1:武松 a2:吴用 a3:吴用 a4:林冲]

1)map 在使用前一定要make

2) map 的key 是不能重复,如果重复key,则覆盖上一个value值

3)map的value 的值是可以重复的

4)map 的key-value 是无序的

make 内置函数

func make(Type, size IntegerType) Type
内建函数make分配并初始化一个类型为切片、映射、或通道的对象。其第一个实参为类型,而非值。make的返回类型与其参数相同,而非指向它的指针。其具体结果取决于具体的类型:切片:size指定了其长度。该切片的容量等于其长度。切片支持第二个整数实参可用来指定不同的容量;它必须不小于其长度,因此 make([]int, 0, 10) 会分配一个长度为0,容量为10的切片。
映射:初始分配的创建取决于size,但产生的映射长度为0。size可以省略,这种情况下就会分配一个小的起始大小。
通道:通道的缓存根据指定的缓存容量初始化。若 size为零或被省略,该信道即为无缓存的。

  map 的使用方式

 

     

 

http://www.jsqmd.com/news/482130/

相关文章:

  • Pipelined-SAR ADC全流程设计:从理论到实践
  • 20260314 模拟测 总结
  • 1022: 淘金
  • ICPC2025四川省赛题解
  • 701. 二叉搜索树中的插入操作-day18
  • java6
  • 1023: 巨人排队
  • 探秘2026荧光粉领域:口碑佳的企业都有谁,可靠的荧光粉哪家好精选实力品牌 - 品牌推荐师
  • L2-024 部落(简单的并查集)
  • 振动料斗怎么选?2026年口碑厂家大揭秘,振动料斗哪家好精选优质品牌解析 - 品牌推荐师
  • Windows系统木马病毒排查与防治方案
  • deepseek的人性化
  • 最近在研究一个基于三菱PLC和组态王的物流货物分拣控制系统,感觉挺有意思的,分享一下我的思路和代码实现
  • 分辨率与WLAN
  • 【卫星】GNSS多路径效应分析【含Matlab源码 15170期】
  • 【电池】LPV模型预测控制方法和耦合电热模型的电池状态估计【含Matlab源码 15171期】
  • VitaBench: Benchmarking LLM Agents with Versatile Interactive Tasks in Real-world Applications
  • 【电池】PMP算法的插电式混合动力车能量优化控制策略【含Matlab源码 15172期】
  • CSDN技术盲盒挑战全攻略
  • 【电磁】计算电阻率层析成像(ERT)表面和跨井(XBH)电极配置的2D和3D灵敏度分布【含Matlab源码 15173期】
  • 【电力系统】风电、光伏与储能(含电池和废弃矿井小型抽水蓄能)互补调度运行研究【含Matlab源码 15174期】
  • 软考高项-成本管理
  • 基于深度学习的工程车辆检测系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
  • js之xml处理
  • 【卫星】基于matlab GNSS多路径效应分析【含Matlab源码 15170期】
  • 701. 二叉搜索树中的插入操作-day25
  • NATS 的基本安装及使用
  • 【电池】基于matlab LPV模型预测控制方法和耦合电热模型的电池状态估计【含Matlab源码 15171期】
  • 实时显示系统时间
  • 【电池】基于matlab PMP算法的插电式混合动力车能量优化控制策略【含Matlab源码 15172期】