美文网首页
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的使用细节

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