Go语言Map的基本使用

1、定义Map

  • map[key]value形式申明

  • make方式申明

package main

import "fmt"

func main() {
	m := map[string]string{"a": "1", "b": "2"} //冒号:定义
	fmt.Println(m)                             //map[a:1 b:2]

	m1 := make(map[string]string) //make关键字定义
	fmt.Println(m1)               //map[]

	var m2 = make(map[string]string) //make关键字定义
	fmt.Println(m2)                  //map[]

	var m3 map[string]string
	fmt.Println(m3)        //map[]
	fmt.Println(m3 == nil) //true

}

2、Map的遍历

使用range遍历(Map是无序的)

package main

import "fmt"

func main() {
   m := map[string]string{"a": "1", "b": "2"} //冒号:定义
   fmt.Println(m)                             //map[a:1 b:2]

   for k, v := range m {
      fmt.Println(fmt.Sprintf("key:%s, value:%s", k, v))
   }
   for k, _ := range m {
      fmt.Println(fmt.Sprintf("key:%s", k))
   }
   for _, v := range m {
      fmt.Println(fmt.Sprintf("value:%s", v))
   }
}

3、根据key取value以及判断是否存在key

package main

import "fmt"

func main() {
   m := map[string]string{"a": "1", "b": "2"} //冒号:定义
   fmt.Println(m)                             //map[a:1 b:2]

   a := m["a"] //1
   fmt.Println(a)
   c := m["c"] //""空串,并不会报错
   fmt.Println(c)

   //可以通过判断exist是否存在该key
   d, exist := m["d"] //""空串,并不会报错
   fmt.Println(d, exist)//根据exist是不是true判断是否存在
}

4、删除key

package main

import "fmt"

func main() {
   m := map[string]string{"a": "1", "b": "2"} //冒号:定义
   fmt.Println(m)                             //map[a:1 b:2]

   delete(m, "a") //删除存在的key
   fmt.Println(m) //map[b:2]

   delete(m, "c") //删除不存在的key也不会报错
   fmt.Println(m) //map[b:2]

}

5、可以作为Map的key的条件

  • map使用哈希表,必须可以比较相等

  • 除了slice、map、function的内建类型都可以作为key

  • 自定义的Struct类型,不包括slice、map、function字段,也可以作为key

posted @   南风丶轻语  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
点击右上角即可分享
微信分享提示