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. SpringMVC-拦截器做一个登录认证的小Demo

    拦截器 拦截器的定义 处理器拦截器类似于servlet开发中的filter,用于对处理器进行预处理和后处理. 定义拦截器,实现HandlerInterceptor这个接口 接口的实现需要导入包impo ...

  2. pdf.js实现图片在线预览

    项目需求 前段时间项目中遇到了一个模块,是关于在线预览word文档(PDF文件)的,所以,找了很多插件,例如,pdf.js,pdfobject.js框架,但是pdfobject.js框架对于IE浏览器 ...

  3. element表格的滚动条在合计上边

    默认滚动条是在下边的,不好看,这里改一下 修改样式.完美解决: .el-table { overflow-x: auto; } .el-table__header-wrapper, .el-table ...

  4. Bugku 代码审计

    0x01.extract变量覆盖 代码: <?php$flag='xxx';extract($_GET);if(isset($shiyan)){$content=trim(file_get_co ...

  5. javascript之DOM(三Element类型)

    Element类型用于表现XML和HTML的元素,提供了对元素标签名.子节点及特性的访问. 要访问标签名可以使用nodeName和tagName属性,其返回值是一样的. <p id=" ...

  6. 不同平台下int类型、指针类型的数据大小

    不同平台下int类型.指针类型的数据大小 对于int类型数据和指针类型数据的大小,是非常基础的问题. 在一个具体的平台上,确定他们最好的办法就是使用sizeof(type)对其进行判断,返回当前数据类 ...

  7. ubuntu 1804安装详解

    我这边安装的是ubuntu server版本,大家安装时可以参考我这篇文件进行安装. 1.选择安装语言: 这里选择默认的"English"和“中文(简体)”都可以. 2.选择”安装 ...

  8. The run destination "设备名称" is not valid for Running the scheme '项目名称'.

    之前运行好好的,怎么会突然出现这个呢?开始百度发现都解决不了. 最后发现,这是XCode的一个bug.遇到这种情况只要Command+Q,退去XCode,然后再重新登入即可.

  9. MySql日期格式化(format)取值范围

  10. js提取DOM属性和设置DOM属性值

    <style type="text/css"> #div1{width:100px;height:100px;} #div2{background} </styl ...