go语言基础 映射 map

本文深入讲解了Go语言中Map的基本概念、创建方式、使用方法,包括添加、获取、修改及删除键值对的操作,并提供了实例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

map集合:映射
容器:存储无序的键值对。
存储特点:
键值对一一对应
键不能重复
无序
创建map:
var map1 map[key]value//nil map
map2:=map[key]value{key:value,key:value...}
map3:=make(map[key]value)

使用:
添加映射项,修改映射项
map1[key] = value
删除
delete(map1,key)
获取
value,ok:=map1[key]
长度:len(map),键值对的数量

package main

import "fmt"

func main()  {
   /*
   map:
      概念:存储一组无序的键值对的集合。
      语法:
         A:创建:如果一个map仅有声明,就是nil map,不能直接存储数据
         var map名 [key类型]value类型
         map名:=map[key类型]value类型{}
         map名:=make(map[key类型]value类型)

         B:向map中添加数据
            map[key] = value

         C:获取map的数据:根据key获取value,如果key 不存在
            value, ok := map[key]
               根据key获取对应的value
                  如果key存在,value就是对应的数据,ok是true
                  如果key不存在,value就是该类型的默认值,ok是false
            遍历:
         D:删除键值对
            delete(map,key)
            根据key删除键值对,如果key不存在,删除失败。
         E:修改:
            根据key修改
    */
    //1.创建map
    var map1 map[int]string
    map2:= map[int]string{1:"王者农药",2:"绝地求生",3:"连连看",4:"传奇霸业",5:"消消乐"}
    map3:=make(map[int]string)
    fmt.Println(map1)
    fmt.Println(map2)
    fmt.Println(map3)
   //2.nil map
   fmt.Println(map1 == nil, map2 ==nil, map3==nil)//true false false
   fmt.Printf("%p,%p,%p\n",map1,map2,map3)

    //3.存储键值对,映射项
    if map1 == nil{
      fmt.Println("map1上未创建。。")
      map1 = make(map[int]string)
    }
    map1[1] = "王二狗"
    map1[2] = "李小花"
    map1[3] = "三胖"
    fmt.Println(map1)

    // 4.获取map中的数据
    fmt.Println(map1[2])
    fmt.Println(map1[20]) // 根据key获取对应的value值,如果key不存在,获取到的是该值类型的默认值,int:0,string:""
    //value,ok:=map[key]
    val1, ok:= map1[20]
   if ok == true {
      fmt.Println(val1)
   }else {
      fmt.Println("您获取的key不存在。。。没有对应的value值")
   }
   /*
   遍历map,配合range

   range-->array/slice
      range:index,value
   range-->string
      range:index,char
   range-->map
      range:key,value
     */

     //4.删除某个键值对
     delete(map1, 30)
     fmt.Println(map1)
     // 5.根据key修改value值
     map1[3] = "如花"
     fmt.Println(map1)


}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值