美文网首页
go语言中map的使用细节

go语言中map的使用细节

作者: 梁帆 | 来源:发表于2021-03-09 10:23 被阅读0次

1、map是引用类型,遵守引用类型传递的机制,在一个函数接收map,修改后,会直接修改原来的map。

有例程如下:

例程1 结果

可以发现,因为map是引用类型,所以它作为参数传递进函数,函数要对map类型的参数进行修改,是会影响到函数外的map的。

2、map的容量达到后,再想map增加元素,会自动扩容(切片不可以,切片要扩容只能用append函数),并不会发生panic,也就是说map能动态地增长键值对(key-value)。

如下所示,在例程1的代码中增加了划红线的部分,表示存储容量为2。

例程1修改

但是我们输入了4个键值对,明显已经超出了存储容量2。但是执行后,并没有报错,还是照常输出了,说明map是可以动态增长键值对的。

3、map的value也经常使用struct类型,更适合管理复杂的数据(此时value用struct类型要比用map类型更好)。

如下图所示:

struct作为value

自己创建一个Stu的结构体来存放我们想要的数据,然后main函数中进行初始化,再将结构体对象作为value传入map中,这样就能做到更复杂的存储,要比map里套map要更为方便和简洁。

相关文章

  • go语言中map的使用细节

    1、map是引用类型,遵守引用类型传递的机制,在一个函数接收map,修改后,会直接修改原来的map。 有例程如下:...

  • 10.map

    Go语言基础之map | Golang Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 ...

  • 第九章:Go语言映射类型map

    1. map概述 Go语言中map字典类型时散列表(hash table)的实现,因为Go语言中将map中的每个键...

  • TODO:Go语言goroutine和channel使用

    TODO:Go语言goroutine和channel使用 goroutine是Go语言中的轻量级线程实现,由Go语...

  • 第03天(复合类型)_map的基本使用

    24_map的基本使用.go 25_map赋值.go 26_map遍历.go 27_map删除.go 28_map...

  • Golang基础之Map

    map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 map的定...

  • 【go语言学习】映射map

    Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key-value对的集合。Go语言中的map...

  • go语言学习总结

    1、go语言的map和c++中的map有什么区别? go语言中的map是hash_table,和c++中uno...

  • 12. Go语言基础之map

    前言 Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map是一种无序的基于key-val...

  • Golang之Map源码

    引用 深入 Go 的 Map 使用和实现原理 哈希表 深度解密Go语言之map Golang map 的底层实现 使用

网友评论

      本文标题:go语言中map的使用细节

      本文链接:https://www.haomeiwen.com/subject/furpqltx.html