Go语言中的map(映射、字典)是一种内置的数据结构,它是一个无序的key—value键值对的集合,数据结构是堆,底层是使用哈希表实现的,属于引用类型。
四种方式创建map
make(map[string]string, 5)
make(map[string]string)
map[string]string{}
map[string]string{“v1”: “v2”, “v3”: “v4”, “v5”: “vN”}
map的使用
package main
import "fmt"
func main() {
m:=make(map[int]string,10)
m[1]="test1"
m[2]="test2"
m[3]="test3"
for k,v:=range m{
fmt.Println(k,v) //因为map是无序,所以这个打印结果是随机的
}
for i:=1;i<len(m)+1;i++{ //正常打印
fmt.Println(m[i])
}
}
使用集合map
package main
import (
"strconv"
"fmt"
)
type UserInfo struct {
ID int
Name string
age int
}
func main() {
userDB:=make(map[int]UserInfo)
//生成十条测试数据
for i:=0;i<10;i++{
name:="test"+strconv.Itoa(i)
userDB[i]=UserInfo{i+100,name,10+i}
}
//对map进行查找
for _,v:=range userDB{
if v.ID==103{
fmt.Printf("查找到ID为%d的人\n",v.ID)
}
if v.Name=="test5"{
fmt.Printf("查找到Name为%v的人",v.Name)
}
}
}