第十节:map

map的创建:

	m:=map[string]int{
		"java":20,
		"c":20,
		"cpp":20,
	}


    m1:=make(map[string]int)

    var m3 map[string]int

打印一下:

	fmt.Println(m)
	fmt.Println(m1)
	fmt.Println(m3)

控制台:

map[c:20 cpp:20 java:20]
map[]
map[]

Process finished with exit code 0

map的遍历:

	for k,v :=range m{
		fmt.Println(k,v)
	}
控制台打印:

java 20
c 20
cpp 20

map是hashmap,无序的,遍历出来也是无序的。

通过key值获取value:

java:= m["java"]

获取key值为java的value值

当key值没有对应的value时,会返回一个空串,也就是 zero value。

判断Key值是否存在:

	java,ok:= m["java"]
	fmt.Println(java,ok)

控制台:

20 true

不存在时:

	java,ok:= m["java1"]
	fmt.Println(java,ok)
控制台:

0 false
	if java,ok:= m["java1"];ok{
		fmt.Println(java,ok)
	}else {
		fmt.Println("key is not exist")
	}

元素删除:

	fmt.Println("before delete:",m)
	delete(m,"cpp")
	fmt.Println("after delete:",m)

控制台:

	before delete: map[c:20 cpp:20 java:20]
    after delete: map[c:20 java:20]

    Process finished with exit code 0

总结:

创建:make(map[string]int)

获取元素:m[key]

key不存在时,获取的vaule为Value类型的初始值

用 value,ok:=m["key"],来判断是否存在key

用delete("key")来删除一个key

 

map中key的要求:

map使用哈希表,key值必须可以比较相等。

除了slice,function,map都可以作为key

struct类型不包含上述不允许的字段,都可以作为Key

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值