map
map是一种key:value
键值对的数据结构容器,map内部实现是哈希表(hash)
map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值
map是引用类型
声明
可以使用内键函数make也可以使用map关键字来声明
//声明变量,默认map值是nil
var map_variable map[key]value
//make声明
map_variable = make(map[key]value)
Demo1
m1使用make初始化,m2批量赋值
m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
fmt.Printf("m1:%v\n", m1)
m2 := map[string]string{
"name": "Tana",
"age": "20",
}
fmt.Printf("m2:%v", m2)
结果:
m1:map[age:18 name:Sentiemnt]
m2:map[age:20 name:Tana]
Demo2
可以根据索引输出
m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
fmt.Printf("m1:%v", m1["name"])
结果:
m1:Sentiemnt
Demo03
其实再根据索引赋值时,会产生两个值,一个是值本身,另一个是bool类型的值来判断本索引是否存在
m1 := make(map[string]string)
m1["name"] = "Sentiemnt"
m1["age"] = "18"
value, b := m1["age"]
fmt.Println(value, b)
索引age
存在所以返回true
结果:
18 true
循环
跟数组循环遍历类似,两个值value和key(Goland快捷键forr
)
var m1 = map[string]string{"name": "Sentiment", "age": "18"}
for key, value := range m1 {
fmt.Println(key, value)
}
}
结果:
name Sentiment
age 18