目录
          
        
        
      前言
开始学习第八章Map。类似python中的dict,Java中的Map了。
Map
声明、初始化和make
map是引用类型。声明:
 | 
 | 
map 是可以动态增长的。
key 可以是任意可以用 == 或者!= 操作符比较的类型,比如 string、int、float。所以切片和结构体不能作为 key(含有数组切片的结构体不能作为 key,只包含内建类型的 struct 是可以作为 key 的),但是指针和接口类型可以。如果要用结构体作为 key 可以提供 Key() 和 Hash() 方法,这样可以通过结构体的域计算出唯一的数字或者字符串的 key。
初始化:
 | 
 | 
因为map是引用类型,所以可以像创建切片那样用make:
 | 
 | 
当然也可以加上初始容量,达到上限的时候再增加会自动+1。
不要使用 new,永远用 make 来构造 map
判断键值是否存在及删除元素
因为如果map1[key]并没有这个key的话,会返回值类型的空值,这样就无法判断到底是不存在,还是本身就是空值,可以这样:
 | 
 | 
通过返回一个bool值来判断。
删除元素:
 | 
 | 
如果 key1 不存在,该操作不会产生错误。
遍历:
 | 
 |