定义hashmap变量

由于go语言是一个强类型的语言,因此hashmap也是有类型的,具体体现在key和value都必须指定类型,比如声明一个key为string,value也是string的map,需要这样做 (推荐学习:go)

var m map[string]string // 声明一个hashmap,还不能直接使用,必须使用make来初始化m = make(map[string]string) // 初始化一个mapm = make(map[string]string, 3) // 初始化一个map并附带一个可选的初始bucket(非准确值,只是有提示意义)m := map[string]string{} // 声明并初始化m := make(map[string]string) // 使用make来初始化

get,set,delete

m := map[string]intm["a"] = 1fmt.Println(m["a"]) // 输出 1// 如果访问一个不存在的key,返回类型默认值fmt.Println(m["b"]) // 输出0// 测试key是否存在v, ok := m["b"]if ok {    ...}// 删除一个keydelete(m, "a")迭代器// 只迭代keyfor k := range m {    ...}// 同时迭代key-valuefor k, v := range m {    ...}

在迭代的过程中是可以对map进行删除和更新操作的,规则如下:

迭代是无序的,跟插入是的顺序无关

迭代的过程中删除一个key,无论遍历还是没有遍历过都不会再遍历到

迭代的过程中添加一个key,不确定是否能遍历到

未初始化的map也可以迭代

其他

map的value是不可取地址的,意味着 &m["a"]这样的语法是非法的

len和cap分别可以获取当前map的kv个数和总容量

更多相关文章

  1. Go语言结构体与初始化图文详解
  2. 对于任意的XML的遍历
  3. Xml之Linq如何遍历存储的数据
  4. 分布式链路追踪 SkyWalking 源码分析 —— Collector 初始化
  5. 链路追踪 SkyWalking 源码分析 —— Agent 初始化
  6. 分布式做系统 Elastic-Job-Lite 源码分析 —— 作业初始化
  7. 网关 Spring-Cloud-Gateway 源码解析 —— 网关初始化
  8. 注册中心 Eureka 源码解析 —— Eureka-Client 初始化(二)之 Eurek
  9. 注册中心 Eureka 源码解析 —— Eureka-Client 初始化(三)之 Eurek

随机推荐

  1. android开发资源
  2. android developers training 文档学习笔
  3. 作为一名Android开发者,怎样才能进入阿里,
  4. 将android工程作为另一个工程的库
  5. Android Log
  6. Android 实例化
  7. Android之单选按钮对话框
  8. Toast
  9. 如何解决Errors occurred during the bui
  10. android 自定义progressbar style