目录
前言
开始学习第八章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 不存在,该操作不会产生错误。
遍历:
|
|