定义map并初始化,根据key获取value
items := map[string]string{
"id1": "1",
"id2": "2",
"id3": "3",
}
v:= items["id2"]
fmt.Println(v)
通过make进行构建
items:=make(map[string]string,10)
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
for k,v:=range items {
fmt.Println(k,"=",v)
}
通过==进行赋值
items:=map[string]string{}
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
fmt.Println(len(items))
通过delete删除
items:=map[string]string{}
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
fmt.Println(len(items))
delete(items, "id2")
fmt.Println(len(items))
map的range遍历
items:=map[string]string{}
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
for k,v:=range items {
fmt.Println(k,"=",v)
}
判断key是否存在
items:=make(map[string]string,10)
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
value,ok:=items["id4"]
if ok {
fmt.Println(value)
}else{
fmt.Println("不存在")
}
------------------------------
不存在
map不是线程安全的
var items=make(map[string]string,10)
func main() {
items["id1"] = "1"
items["id2"] = "2"
items["id3"] = "3"
go process()
//遍历打印key-value值
for{
for k,v:=range items {
fmt.Println(k,"=",v)
}
}
}
func process() {
//一直对map进行插入、删除操作
for {
items["id1"]="1"
delete(items,"id1")
}
}
------------------------------------------------------------
fatal error: concurrent map iteration and map write
|
请发表评论