介绍go的map类型高级使用
package main
import "fmt"
import "sort"
func main() {
// 复杂点的map
d := make(map[int]map[int]string)
tmp, is_ok := d[2][1] //可以使用第二个值,tmp:这个元素的value,is_ok:是否有值在里面
if !is_ok {
// 如果没有值就,就赋值一个新的值
d[2] = make(map[int]string)
}
d[2][1] = "地图"
fmt.Println(tmp) // [无输出]
fmt.Println(is_ok) // map[2:map[1:地图]]
fmt.Println(d) // map[1:a 2:b 3:c 4:d 5:e]
//迭代
e := map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "e"}
s := make([]int, len(e))
i := 0
fmt.Println(e) // map[1:a 2:b 3:c 4:d 5:e]
sort.Ints(s) // 对key排序
for k, _ := range e {
s[i] = k
i++
}
fmt.Println(s) // [1 2 3 4 5]
//键值对换
f := make(map[string]int)
for k, v := range e {
f[v] = k
}
fmt.Println(f) // map[e:5 a:1 b:2 c:3 d:4]
}