1、map赋值

示例:

  1. package main //必须有个main包
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. m1 := map[int]string{1: "mike", 2: "yoyo"}
  7. //赋值,如果已经存在的key值,修改内容
  8. fmt.Println("m1 = ", m1)
  9. m1[1] = "c++"
  10. m1[3] = "go" //追加,map底层自动扩容,和append类似
  11. fmt.Println("m1 = ", m1)
  12. }

执行结果:

  1. m1 = map[2:yoyo 1:mike]
  2. m1 = map[1:c++ 2:yoyo 3:go]

  

2、map遍历

示例1:

  1. package main //必须有个main包
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
  7.  
  8. //第一个返回值为key, 第二个返回值为value, 遍历结果是无序的
  9. for key, value := range m {
  10. fmt.Printf("%d =======> %s\n", key, value)
  11. }
  12. }

执行结果:

  1. 3 =======> go
  2. 1 =======> mike
  3. 2 =======> yoyo

3、map 判断一个key值是否存在

示例2:

  1. package main //必须有个main包
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
  7.  
  8. //第一个返回值为key, 第二个返回值为value, 遍历结果是无序的
  9. for key, value := range m {
  10. fmt.Printf("%d =======> %s\n", key, value)
  11. }
  12.  
  13. //如何判断一个key值是否存在
  14. //第一个返回值为key所对应的value, 第二个返回值为key是否存在的条件,存在ok为true
  15. //value, ok := m[1] //已经存在的value
  16. value, ok := m[0] //key不存在
  17. if ok == true {
  18. fmt.Println("m[1] = ", value)
  19. } else {
  20. fmt.Println("key不存在")
  21. }
  22. }

执行结果:

  1. 1 =======> mike
  2. 2 =======> yoyo
  3. 3 =======> go
  4. key不存在

  

4、map删除

示例4:

  1. package main //必须有个main包
  2.  
  3. import "fmt"
  4.  
  5. func main() {
  6. m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
  7. fmt.Println("m = ", m)
  8.  
  9. delete(m, 1) //删除key为1的内容
  10. fmt.Println("m = ", m)
  11. }

执行结果:

  1. m = map[2:yoyo 3:go 1:mike]
  2. m = map[2:yoyo 3:go]

5、map做函数参数

示例5:

  1. package main //必须有个main包
  2.  
  3. import "fmt"
  4.  
  5. //{1: "mike", 2: "yoyo", 3: "go"}
  6. func test(m map[int]string) {
  7. delete(m, 1) //删除1个
  8.  
  9. func main() {
  10. m := map[int]string{1: "mike", 2: "yoyo", 3: "go"}
  11. fmt.Println("m = ", m)
  12.  
  13. test(m) //在函数内部删除某个key
  14.  
  15. fmt.Println("m = ", m)
  16. }

执行结果:

  1. m = map[1:mike 2:yoyo 3:go]
  2. m = map[2:yoyo 3:go]

  

go语言基础之map赋值、遍历、删除 、做函数参数的更多相关文章

  1. Go语言基础之map

    Go语言基础之map Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能 ...

  2. GO学习-(11) Go语言基础之map

    Go语言基础之map Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现. map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能 ...

  3. C语言 数组做函数参数不传数组个数的遍历方法

    //数组做函数参数不传数组个数的遍历方法 #include<stdio.h> #include<stdlib.h> #include<string.h> void ...

  4. 3203 数组做函数参数----排序函数--C语言版

    3203: 数组做函数参数----排序函数--C语言版 时间限制: 1 Sec  内存限制: 128 MB提交: 253  解决: 151[提交][状态][讨论版][命题人:smallgyy] 题目描 ...

  5. C语言 数组做函数参数退化为指针的技术推演

    //数组做函数参数退化为指针的技术推演 #include<stdio.h> #include<stdlib.h> #include<string.h> //一维数组 ...

  6. 3205: 数组做函数参数--数组元素求和1--C语言

    3205: 数组做函数参数--数组元素求和1--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 178  解决: 139[提交][状态][讨论版][命题人:smallgyy] 题目描 ...

  7. 3204: 数组做函数参数--排序函数2--C语言

    3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec  内存限制: 128 MB提交: 211  解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 ...

  8. 深入理解C语言-结构体做函数参数

    结构体做函数参数,在C语言中属于常见现象,此时为了内存考虑,不传递结构体,而是传递结构体的地址 结构体定义 struct Man { char name[64]; int age; }; 结构体可以与 ...

  9. C++基础--引用做函数参数

    引用,简单粗暴的解释叫做别名,简单粗暴的例子就是,我是熊叫大雄,但是很多时候别人不叫我熊叫大雄,会叫我大雄,粤语地区朋友爱叫我阿雄,有人叫我雄,所以,熊叫大雄这个变量的值是我,雄.大雄.阿雄是熊叫大雄 ...

随机推荐

  1. Python入门2(Python与C语言语法的不同、Notepad++运行Python代码)

    本篇博客主要介绍Python的基本语法与C语言不同的地方 [不同] 一.Python代码需要有严格的缩进,即C语言中所谓的良好的编码习惯.缩进不正确就会报错. 二.C语言需要圆括号 三.C语言每个语句 ...

  2. 关于CSRF的那点事儿

    0x01 CSRF简介     CSRF,也称XSRF,即跨站请求伪造攻击,与XSS相似,但与XSS相比更难防范,是一种广泛存在于网站中的安全漏洞,经常与XSS一起配合攻击. 0x02 CSRF原理 ...

  3. Python并发编程系列之常用概念剖析:并行 串行 并发 同步 异步 阻塞 非阻塞 进程 线程 协程

    1 引言 并发.并行.串行.同步.异步.阻塞.非阻塞.进程.线程.协程是并发编程中的常见概念,相似却也有却不尽相同,令人头痛,这一篇博文中我们来区分一下这些概念. 2 并发与并行 在解释并发与并行之前 ...

  4. NetCore+Dapper WebApi架构搭建(三):添加实体和仓储

    上一节讲了类库添加一些底层的基本封装,下面来添加实体和仓储 1.Entities文件夹添加一个实体类Users,继承BaseModel,即拥有BaseModel的主键 using System; na ...

  5. 移动端meta标签

    现在的手机或平板电脑等移动设备上的浏览器默认都有双击放大的设置,如何阻止双击放大?user-scalable=no <!-- 禁止缩放 --> <meta name=”viewpor ...

  6. python opencv3 FLANN单应性匹配

    git:https://github.com/linyi0604/Computer-Vision 匹配准确率非常高. 单应性指的是图像在投影发生了 畸变后仍然能够有较高的检测和匹配准确率 # codi ...

  7. Where should we fork this repository?

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 我们应该在哪里分叉这个存储库? Where should we fork this re ...

  8. HDU 3949 XOR 线性基

    http://acm.hdu.edu.cn/showproblem.php?pid=3949 求异或第k小,结论是第k小就是 k二进制的第i位为1就把i位的线性基异或上去. 但是这道题和上一道线性基不 ...

  9. Codeforces Round #355 (Div. 2) A. Vanya and Fence 水题

    A. Vanya and Fence 题目连接: http://www.codeforces.com/contest/677/problem/A Description Vanya and his f ...

  10. offsetLeft && left

    /* function getCss(obj,attr){ return window.getComputedStyle ? window.getComputedStyle(obj,null)[att ...