Go 字典

字典是Go语言内置的关联数据类型。因为数组是索引对应数组元素,而字典是键对应值。

  1. package main
  2. import "fmt"
  3. func main() {
  4. // 创建一个字典可以使用内置函数make
  5. // "make(map[键类型]值类型)"
  6. m := make(map[string]int)
  7. // 使用经典的"name[key]=value"来为键设置值
  8. m["k1"] = 7
  9. m["k2"] = 13
  10. // 用Println输出字典,会输出所有的键值对
  11. fmt.Println("map:", m)
  12. // 获取一个键的值 "name[key]".
  13. v1 := m["k1"]
  14. fmt.Println("v1: ", v1)
  15. // 内置函数返回字典的元素个数
  16. fmt.Println("len:", len(m))
  17. // 内置函数delete从字典删除一个键对应的值
  18. delete(m, "k2")
  19. fmt.Println("map:", m)
  20. // 根据键来获取值有一个可选的返回值,这个返回值表示字典中是否
  21. // 存在该键,如果存在为true,返回对应值,否则为false,返回零值
  22. // 有的时候需要根据这个返回值来区分返回结果到底是存在的值还是零值
  23. // 比如字典不存在键x对应的整型值,返回零值就是0,但是恰好字典中有
  24. // 键y对应的值为0,这个时候需要那个可选返回值来判断是否零值。
  25. _, ok := m["k2"]
  26. fmt.Println("ok:", ok)
  27. // 你可以用 ":=" 同时定义和初始化一个字典
  28. n := map[string]int{"foo": 1, "bar": 2}
  29. fmt.Println("map:", n)
  30. }

输出结果为

  1. map: map[k1:7 k2:13]
  2. v1: 7
  3. len: 2
  4. map: map[k1:7]
  5. ok: false
  6. map: map[foo:1 bar:2]