package main
import (
"fmt"
"sort"
)
func main() {
//map
var m1 map[string]int
fmt.Println(m1 == nil) //true 没初始化,为空
//map 会自动扩容
m1 = make(map[string]int, 5)
m1["liming"] = 20
fmt.Println(m1) // map[liming:20]
//获取值时,key不存在时;
fmt.Println(m1["sss"]) //0 如果key 不存在;返回对应值的'零'值;
score, ok := m1["sss"]
if !ok {
fmt.Println("没有这个 sss")
} else {
fmt.Println("sss对应值:", score)
}
//delete:
delete(m1, "sss") //删除key 不存在,什么都不干
delete(m1, "liming") //删除对应元素
fmt.Println(m1) //[]
fmt.Println(m1 == nil) //false
//遍历map
//使用for range 获取所有key,遍历所有key 分别获取k v
m2 := make(map[string]int, 5) //创建map
m2["s0"] = 1
m2["s1"] = 2
m2["s2"] = 3
m2["s3"] = 4
m2["s4"] = 5
keys := make([]string, 0) //创建切片存放map的key
for key := range m2 {
keys = append(keys, key)
}
sort.Strings(keys)
fmt.Println(keys) //将key 排序 [s0 s1 s2 s3 s4]
for _, key := range keys {
fmt.Printf("key= %s val= %v \n", key, m2[key])
}
/*
key= s0 val= 1
key= s1 val= 2
key= s2 val= 3
key= s3 val= 4
key= s4 val= 5
*/
}
Golang map
最新推荐文章于 2022-12-31 10:37:16 发布