【Golang系列】-map
2022-03-11
map
- map 是一种key:value键值对的数据结构容器,map内部实现是哈希表(hash)
- map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值
- map是引用类型
map的语法格式
可以使用内建函数make也可以使用关键字map来定义map
//声明变量,默认map是nil
var map_variable map[key_data_type]value_data_type
//使用make函数
map_variable = make(map[key_daya_type]value_data_type)
- map_variable:map变量名称
- key_data_type:key的数据类型
- value_data_type:值的数据类型
示例:
声明一个保存个人信息的map
package main
import (
"fmt"
)
func main() {
m1 := make(map[string]string)
m1["name"] = "caolihui"
m1["age"] = "30"
m1["add"] = "北京"
fmt.Println(m1)
m2 := map[string]string{
"add": "天津",
"age": "31",
"name": "caolihuim2",
}
fmt.Println(m2)
}
访问map:
package main
import (
"fmt"
)
func main() {
m2 := map[string]string{
"add": "天津",
"age": "31",
"name": "caolihuim2",
}
name := m2["name"]
age := m2["age"]
add := m2["add"]
fmt.Println(name, age, add)
}
判断某个键是否存在
有个判断map中键是否存在的特殊写法,格式:
value,ok:= map[key]
如果ok为true,就是存在,否则就是不存在
示例:
package main
import "fmt"
func main() {
m2 := map[string]string{
"add": "天津",
"age": "31",
"name": "caolihuim2",
}
v, ok := m2["add"]
fmt.Println(v, ok)
}
结果:
天津 true
遍历map
可以使用for range循环进行map遍历,得到key 和value
遍历key
package main
import "fmt"
func main() {
m2 := map[string]string{
"add": "天津",
"age": "31",
"name": "caolihuim2",
}
for key := range m2 {
fmt.Println(key)
}
}
遍历key和vaule
package main
import "fmt"
func main() {
m2 := map[string]string{
"add": "天津",
"age": "31",
"name": "caolihuim2",
}
for key, value := range m2 {
fmt.Println(key, value)
}
}
结果:
[Running] go run "/Users/lihui/Desktop/gocode/src/chapter06/dome01.go"
name caolihuim2
add 天津
age 31
[Done] exited with code=0 in 0.646 seconds