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要更为方便和简洁。
网友评论