间隔时间越来越长说明工作越来越忙,忙到空闲时间不想学习……
前面学的已然忘记了,还没入门就快要放弃了
package main
import (
"fmt"
)
func main() {
//map定义方式 map[键类型]值类型
var myMap map[string]string
//通过 make 声明
myMap = make(map[string]string, 2)
myMap["name"] = "tom"
myMap["sex"] = "man"
fmt.Println(myMap)
//直接赋值 最后一列必须有逗号
newMap := map[string]string {
"name" : "lily",
"sex" : "woman",
}
fmt.Println(newMap)
var aMap map[string]map[string]string
aMap = make(map[string]map[string]string, 2)
aMap["dean"] = make(map[string]string, 2)
aMap["dean"]["sex"] = "man"
aMap["dean"]["address"] = "cn"
aMap["jo"] = map[string]string{
"sex" : "woman",
"address" : "cn",
}
fmt.Println(aMap)
}
遍历
package main
import (
"fmt"
"sort"
)
func main() {
myMp := map[string]string {
"name" : "shone",
"age" : "10",
"sex" : "man",
"add" : "cn",
}
fmt.Println("before delete:", myMp)
//删除对应的key
delete(myMp, "age")
fmt.Println("after delete:", myMp)
//判断是否包含key
val, flg := myMp["name"]
fmt.Printf("val type %T, flg type %T \n", val, flg)
fmt.Println(val, "--", flg)
val, flg = myMp["age"]
fmt.Println(val, "--", flg)
//go中map无对clear方法可通过遍历删除或重新赋值来实现
fmt.Println(myMp)
for key, val := range myMp {
fmt.Println(key , "---", val)
}
//map默认无序
aMp := map[int]string {
31 : "thirty-three",
11 : "eleven",
99 : "ninety-nine",
54 : "fifty four",
78 : "seventy eight",
}
fmt.Println(aMp)
//稳定排序策略将key放置slice,排序slice,根据排序后的slice来获取对应的值
var sortKeys []int
for key, _ := range aMp {
sortKeys = append(sortKeys, key)
}
fmt.Println("sortKeys -- ", sortKeys)
//排序
sort.Ints(sortKeys)
//range slice 对应的是下标和元素, range map 对应的是key 和 value
for _, k := range sortKeys {
fmt.Println(aMp[k])
}
}