Go学习笔记之Map

Map 引用类型,哈希表。map的key必须可以比较相等,除了slice, map, function的内建类型都可以作为key。struct类型不包含上述字段,也可作为key。

map的操作

1.创建一个map。

 m := map[int]struct{
name string
age int
}{
1: {"user1", 10},
2: {"user2", 20},
}
fmt.Println(m)

2.使用make创建。这里map为空。

m := make(map[string]int)  //map[key]value,m == empty

3.或者定义一个map,这里map为nil。

var m map[string]int  // m == nil

2.获取元素

1.使用value, ok := map[key]来判断是否存在key.

2.使用delete删除元素。

m := map[string]int{
"a": ,
} if v, ok := m["a"]; ok{ //判断key是否存在
println(v)
}else{
println("not exist")
} println(m["c"]) //对于不存在的key, 直接返回\0,不会报错 m["b"] = //新增或修改 delete(m, "c") //删除,若key不存在,不会报错 println(len(m)) //获取键值对数量,cap 无效

map的遍历

不能保证迭代返回的次序。

m := map[string]string {
"name": "ccmouse",
"course": "golang",
"site": "imooc",
}
fmt.Println("Traversing map")
for k,v := range m {
fmt.Println(k, v)
} 输出:
course golang
site imooc
name ccmouse

Go学习笔记之Map的更多相关文章

  1. Python学习笔记之map、zip和filter函数

    这篇文章主要介绍 Python 中几个常用的内置函数,用好这几个函数可以让自己的代码更加 Pythonnic 哦 1.map map() 将函数 func 作用于序列 seq 的每一个元素,并返回处理 ...

  2. stl源码剖析 详细学习笔记 set map

    // //  set map.cpp //  笔记 // //  Created by fam on 15/3/23. // // //---------------------------15/03 ...

  3. Thinking in java学习笔记之map的应用

    Random rand = new Random(47); Map<Integer,Integer> m = new HashMap<Integer,Integer>(); f ...

  4. Java集合类学习笔记(Map集合)

    Map用于保存具有映射关系的数据,因此Map集合里保存着两组数据,一组用于保存Map的key,一组用于保存key所对应的value. Map的key不允许重复. HashMap和Hashtable都是 ...

  5. 【Java学习笔记】Map集合的keySet,entrySet,values的用法例子

    import java.util.Collection; import java.util.HashMap; import java.util.Iterator; import java.util.M ...

  6. 【Java学习笔记】Map借口的子接口----HashMap

    存储在HashMap集合中的元素,必须覆盖hashCode和equals方法(与HashSet类似)   import java.util.HashMap; import java.util.Iter ...

  7. 【Java学习笔记】Map

    Map: 一次添加一对元素,也称为双列集合. 而Collection,一次添加一个元素,称为单列集合. 常用方法: 1.添加 value  put(key,value);        返回前一个与k ...

  8. k64 datasheet学习笔记4---Memory Map

    1.前言 本文主要介绍K64地址空间的映射 2. System Memory Map 3. K64地址映射 4. Armv7m地址映射 4.1 Armv7M.System地址段(0XE0000000~ ...

  9. ES6学习笔记之map、set与数组、对象的对比

    ES6 ES5中的数据结构,主要是用Array和Object.在ES6中主要新增了Set和Map数据结构.到目前为止,常用的数据结构有四种Array.Object.Set.Map.下面话不多说了,来一 ...

随机推荐

  1. Eureka2.0集群环境

    当有2个eureka注册中心构建eureka注册中心集群时,1:微服务的注册中心地址要写2个eureka注册中心的地址,以逗号分隔2:其中1个eureka注册中心A保留有微服务的注册信息,作为主注册中 ...

  2. Android源码分析(十二)-----Android源码中如何自定义TextView实现滚动效果

    一:如何自定义TextView实现滚动效果 继承TextView基类 重写构造方法 修改isFocused()方法,获取焦点. /* * Copyright (C) 2015 The Android ...

  3. day 67 作业

    有红, 黄, 蓝三个按钮, 以及一个200X200px的矩形box, 点击不同的按钮, box的颜色会被切换为指定的颜色 <!DOCTYPE html> <html lang=&qu ...

  4. Linux的DNS主从服务器部署

    下面的部署是在Linux的DNS正向解析部署上进行修改的. 如果有什么问题或者错误,可以访问上篇帖子 下面开始有关DNS的服务部署.<DNS主从服务器> 环境描述: 192.168.196 ...

  5. Codeforces G. The Brand New Function(枚举)

    题目描述: The Brand New Function time limit per test 2 seconds memory limit per test 256 megabytes input ...

  6. Java精通并发-Condition方法实现分析与讲解

    在上两次已经对Condition这个类的javadoc进行了完整的解读,接下来则对它里面的方法进行一下纵览,并进行官方的解读,如下: 下面一一来读一下各个方法的说明: await(): 上面这段说明已 ...

  7. MyISAM引擎mysql5.6中大型网站数据库优化配置方案

    硬件服务器:Dell R710,双至强E5620 CPU.16G内存.6*500G硬盘   操作系统:CentOS5.5 X86_64 系统   Mysql版本:MySQL 5.6   适用于:日IP ...

  8. JZOJ3492数数&&GDOI2018超级异或绵羊——位&&类欧几里得

    JZOJ3492 数数(count) 我们知道,一个等差数列可以用三个数A,B,N表示成如下形式:  B+A,B+2A,B+3A⋯B+NA ztxz16想知道对于一个给定的等差数列,把其中每一项用二进 ...

  9. erlang程序设计--顺序编程

    erlang模块的基本结构 基本结构-module(filename).-export([funname/num]). c(filename). 编译erlang模块  .bean 结尾的文件 编译后 ...

  10. 分布式环境配置虚拟域名,phpstudy配置虚拟域名,集成环境配置域名,域名禁止访问forbidden怎么解决

    重启Apache,测试: