golang map一看就会

254 阅读1分钟
package main

import "fmt"

//map
//(映射,字典)是一种内置的数据结构,无序的键值对集合
//key唯一

func main() {
   //map基础定义:
   // 数据类型:引用类型
   //容量不够自动扩容
   //方式1
   //var mp map[int]string //此只声明,并未初始化,此时没有指向的内存空间不能使用
   //方式2
   //mp:=map[int]string{}//此处初始化数据为空的map
   //方式3
   //mp:=make(map[int]string,4)//此处第二个参数指定长度

   //map赋值
   //通过下标赋值
   //mp:=make(map[int]string)
   //mp[0]="a"
   //mp[1]="b"
   //fmt.Println("a",mp)

   mp := map[int]string{1: "a", 2: "b", 3: "c", 4: "d", 5: "e"}
   //删除
   // map的元素:delete()操作是安全的,即使元素不在map中也没有关系;如果查找删除失败将返回value类型对应的零值。
   //delete(mp, 0) //删除map中的元素
   //map遍历
   //for k, v := range mp {
   // fmt.Println(k, v) //输出:1 a  2 b  3 c  4 d  5 e
   //}

   //map做函数参数
   //map是引用类型所以传递的是指针地址,直接操作内存地址存储的map对象
   mapTest(mp)
   fmt.Println(mp)//输出:map[1:a 2:b 3:c 4:d 5:e 0:你看看是不是改了原map的成员了???]

}

func mapTest(mp map[int]string)  {
     if len(mp)>0{
       mp[0]="你看看是不是改了原map的成员了???"
    }
}