Posted on:
Last modified:
相比 Rust 中尚未实现 IndexMut 的 Hash 类型来说,Go 中的 Map 实现度可以说是非常高了。
Map 的类型是 map[KeyType]ValueType
的。也就是由 Key 类型和 Value 类型同时决定的。声明一个 Map:
var m map[string]int
不过一般很少有人这样写,还是生命并赋值比较常见,还是使用我们的 make 函数:
m = make(map[string]int)
commits := map[string]int{
"rsc": 3711,
"r": 2138,
"gri": 1908,
"adg": 912,
}
基本上除了 slice,map 和 function 以外,都可以做 map 的键。
赋值
m["route"] = 66
获取值
i := m["route"] // 如果 route 不存在,那么获取的就是对应的零值
j := m["non-exist"]
删除值
delete(m, "route") // 如果不存在的话,也不会抛出异常。这里和 Python 不一样
判断是否存在
i, ok := m["route"]
遍历
for key, value := range m {
fmt.Println("Key:", key, "Value:", value)
}
map 不是线程安全的。
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站