字典
map是一种键值对结构,可以通过key找到对应的value。
- map是引用类型
- map是使用Hash实现的
- Map是无序键值对
- len()函数返回Map的key的个数
- map的key可以是所有可比较的类型,如布尔型、整数型、浮点型、复杂型、字符串型,如果使用interface{}作为value类型,那么就可以接受各种类型的值,只不过在具体使用的时候需要使用类型断言来判断类型。
- 定义字典时不需要为其指定容量,因为map是可以动态增长的
定义字典
/* 声明变量,默认 map 是 nil
key为int类型,value为string类型
*/
var map_variable map[int]string
/* 使用 make 函数 */
map_variable = make(map[int]string)
//声明同时赋值
rating := map[string]float32 {
"C":5, "Go":4.5, "Python":4.5, "C++":2 }
如果不初始化 map,那么就会创建一个 nil map。nil map 不能用来存放键值对。
插入值
m3["key1"] = "v1"
m3["key2"] = "v2"
m3["key3"] = "v3"
若使用相同的key,会覆盖。
不仅如此我们还可以将函数作为值类型存入到字典中。
func main() {
m := make(map[string]func(a, b int) int)
m["add"] = func(a, b int) int {
return a + b
}
m["multi"] = func(a, b int) int {
return a