Go的100天之旅-09Map
简介
哈希表在平时可以说是最常见的一种数据结构,Go内建了map这种类型,就是哈希表的一种实现。声明一个map类型的变量要指定它key/value的类型,如下:
var m = map[keyType]valueType
其中key的类型必须支持==比较运算符的数据类型
下面简单声明一个key是string类型值是int类型的map:
var m map[string]int
map类型的变量,是一个指向哈希表的引用,类似指针或者slice。上面声明的m由于没有指向具体的哈希表,所以它是nil的。通常声明一个map后需要用内建的make进行初始化:
m = make(map[string]int)
这时变量m就指向了一个哈希表结构的数据,接下来我们可以对它进行操作了。
常见的操作
给一个map中添加值:
m["a"] = 1
这里的a可以是存在也可以不存在,如果存在就是替换这个a的值,如果不存在就是设置一个a的值为1
获取map中的值:
i := map["a"]
如果键a不存在,则返回0,map可以返回双值,判断key是否存在:
i, ok := m["a"]
i就是当前a存的值,ok就是键a是否存在,如果存在ok为true不存在为false
len可以获取map当前的元素的个数:
n := len(m)
delete可以删除map中的值:
delete(m, "a")
遍历map可以用range:
for key, value := range m {
fmt.Println("Key:", key, "Value:", value)
}
map初始化的是时候就可以赋值:
m := map[string]int{
"rsc": 3711,
"r": 2138,
"gri": 1908,
"adg": 912,
}
优秀的程序员复制,伟大的程序员剽窃

浙公网安备 33010602011771号