go中map 切片

一 点睛

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

二 实战

1 要求

使用一个 map 来记录 monster 的信息 name 和 age, 也就是说一个 monster 对应一个 map,并且妖怪的个数可以动态的增加。

2 思路

使用 map  切片。

3 代码

package main

import (
   "fmt"
)

func main() {
   // 演示 map 切片的使用
   /*
      要求:使用一个 map 来记录 monster 的信息 name 和 age, 也就是说一个 monster 对应一个 map,并且妖怪的个数可以动态的增加。
   */
   // 1 声明一个map切片
   var monsters []map[string]string
   monsters = make([]map[string]string, 2) // 准备放入两个妖怪
   // 2 增加第一个妖怪的信息
   if monsters[0] == nil {
      monsters[0] = make(map[string]string)
      monsters[0]["name"] = "牛魔王"
      monsters[0]["age"] = "500"
   }
   // 3 增加第二个妖怪的信息
   if monsters[1] == nil {
      monsters[1] = make(map[string]string)
      monsters[1]["name"] = "玉兔精"
      monsters[1]["age"] = "400"
   }
   // 下面这个写法越界
   // if monsters[2] == nil {
   //     monsters[2] = make(map[string]string, 2)
   //     monsters[2]["name"] = "狐狸精"
   //     monsters[2]["age"] = "300"
   // }

   // 如果要增加 monster。
   // 需要使用到切片的 append 函数,它可以动态的增加 monster
   // 1 先定义1个 monster 信息
   newMonster := map[string]string{
      "name": "新的妖怪~火云邪神",
      "age":  "200",
   }
   // 通过 append 追加
   monsters = append(monsters, newMonster)
   fmt.Println(monsters)
}

4 测试

[map[name:牛魔王 age:500] map[name:玉兔精 age:400] map[name:新的妖怪~火云邪神 age:200]]

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值