基本介绍

切片的数据类型如果是map,则称之为 slice of map ,这样使用map的个数就可以动态变化了。

代码

  1. package main
  2. import "fmt"
  3. func main() {
  4. // 定义map切片, 长度容量都是2
  5. var monsters []map[string]string = make([]map[string]string, 2)
  6. // 增加一个妖怪的信息
  7. if monsters[0] == nil {
  8. monsters[0] = make(map[string]string)
  9. monsters[0]["name"] = "小牛"
  10. monsters[0]["age"] = "10"
  11. }
  12. if monsters[1] == nil {
  13. monsters[1] = make(map[string]string)
  14. monsters[1]["name"] = "小马"
  15. monsters[1]["age"] = "20"
  16. }
  17. // 继续增加妖怪
  18. // panic: runtime error: index out of range [2] with length 2\
  19. // 数组越界
  20. /* if monsters[2] == nil {
  21. monsters[2] = make(map[string]string)
  22. monsters[2]["name"] = "小猴子"
  23. monsters[2]["age"] = "22"
  24. } */
  25. // 这里使用切片的append函数增长
  26. var newMonster = map[string]string{
  27. "name": "新增加的:小羊",
  28. "age": "20",
  29. }
  30. monsters = append(monsters, newMonster)
  31. fmt.Println("monsters长度 = ", len(monsters)) // 3
  32. fmt.Println("monsters = ", monsters)
  33. // [map[age:10 name:小牛] map[age:20 name:小马] map[age:20 name:新增加的:小羊]]
  34. }