Goland入门基础 Map的声明和使用方式

1.map的声明

第一种

func main (){
    //第一种声明方式 map1是一个mapleixing key是string 类型 value 是 int 类型
   var map1 map[string]int
   //但是在这个时候map是空的
   if(map1 == nil){
    fmt.Println("map1为空")
   }
}

这种声明方式声明出来的map对象是没有空间的
如果这个时候插入一条数据的话就会报错
在这里插入图片描述
所以需要用make函数开辟空间

func main (){
    //第一种声明方式 map1是一个mapleixing key是string 类型 value 是 int 类型
   var map1 map[string]int
   //但是在这个时候map是空的
   if(map1 == nil){
    fmt.Println("map1为空")
   }
   map1 = make(map[string]int,3)
   map1["aaa"]  = 1
   fmt.Println(map1)
}

在这里插入图片描述

第二种

 //第二种声明方式
   map2 := make(map[int]string)
   map2[1] = "chinese"
   map2[2] = "jiaopan"
   map2[3] = "emairuike"
   map2[4] = "ruaiss"

   fmt.Println(map2)

这种声明方式在声明map的时候就开辟了空间,如果不指定开辟大小
系统会默认给一些然后插入元素后追加
在这里插入图片描述
这里可以发现插入后打印出来的数据是无序的,是因为map存储数据本身是散列存储

第三种

 //第三种方式
   map3 := map[string]string{
      "one":"one",
      "two":"two",
      "three":"three",
   }
   fmt.Println(map3)

注意有逗号

map的使用方法

func printMap(Map map[string]string) {
   for key, value := range Map {
      fmt.Printf("key = %s value = %s \n",key,value)
   }
}

func copyMap(Map map[string]string) map[string]string{
   newmap := make(map[string]string)
   for key, value := range Map {
      newmap[key] = value
   }
   return newmap
}

func main (){
   Map := make(map[string]string)

   //插入
   Map["int"] = "Integer"
   Map["char"] = "Character"

   //遍历
   for key, value := range Map {
      fmt.Printf("key = %s value = %s \n",key,value)
   }

   //删除
   delete(Map,"int")

   //修改
   Map["int"] = "那还能是啥"

   fmt.Println("---------------")

   //函数传参,这个是引用传值,在函数中对map修改原map也会修改
   printMap(Map)

	//map的复制
	newmap := make(map[string]string)
   	newmap = copyMap(Map)
	fmt.Println(newmap)
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值