集合Map

  • map是使用hash表实现的、无序的键值对的集合!只能通过key获得value,而不能通过index
  • map的长度不固定,和slice一样都是引用类型。len函数适用于map,返回map的key的数量。
  • map的key可以是所有可比较的类型,如布尔型、整型、浮点型、字符串型。。。

map的使用:(make是一个内建函数)

创建map

  • 声明: var mapName map[key_type]value_type    //map的默认值也是nil
  • 创建: mapName = make(map[key_type]value_type)

eg:    rating := map[string]float {"c":5, "Go":4.5, "Python":4.5}

  • 插值: mapName["China"] = "Beijing"

delete()函数

  • 用于删除map集合的元素: delete(mapNmae, key)
  • 此函数不返回任何值。如果key不存在,也不会报错,不会对map产生任何影响。

ok-idiom

  • 可以通过key获取相应的value —> map[key].
  • 当key不存在时,会得到该value值类型对应的默认值,如string得到空字符串,int得到0...程序不会报错!
  • 我们可以使用 ok-idiom获取值,并且可以知道key/value是否存在:value, ok = map[key],存在时ok的值为true, 不存在则为false.

== 操作符    只能用来检查map是否为空(mapName == nil),但不能用于map的比较。

××× make和new:

  • make()仅用于内建类型(map、slice和channel)的内存分配(创建),并且返回一个初始化后的(非0)值。
  • new()可以用于各种类型的内存分配,并返回该内存空间的地址,即指针!

Go语言学习笔记(5)——集合Map的更多相关文章

  1. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  2. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  3. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  6. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  7. Go语言学习笔记六: 循环语句

    Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...

  8. Go语言学习笔记二: 变量

    Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...

  9. Java学习笔记之---集合

    Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...

随机推荐

  1. 入门cmake,窥探编译过程

    https://www.cnblogs.com/hg-love-dfc/p/10242391.html https://www.cnblogs.com/hg-love-dfc/p/10244328.h ...

  2. Anriod手机抓包

    1. 下载Fiddler http://fiddler2.com/ 2. 开启Fiddler的远程连接,Fiddler 主菜单 Tools -> Fiddler Options--> Co ...

  3. 怎么在for循环中新建出不同的list

    public static void main(String[] args) { List<Integer> list = Arrays.asList(1, 1, 1, 1, 1, 3, ...

  4. Java 交换两数的方法

    错误示范 1. 直接交换 public class SwapNumbers { // 直接交换 public static void swap(int a, int b) { int temp = a ...

  5. OpenResty之ngx.var.VARIABLE

    1. ngx.var.VARIABLE syntax: ngx.var.VAR_NAME context: set_by_lua*, rewrite_by_lua*, access_by_lua*, ...

  6. swoole的websockte例子

    服务器的环境,建议用bt.cn的一键环境 服务端: <?php /** * Created by PhpStorm. * User: Administrator * Date: 2019\5\2 ...

  7. js面向对象写法及栈的实现

    function Stack() { this.dataStore = []; this.top = 0; //指向栈顶的位置 this.push = push; this.pop = pop; th ...

  8. Java使用MyBatis的ScriptRunner执行SQL脚本

    脚本文件D:/test_transaction.sql: start transaction; drop table if exists testdb.test_transaction_table; ...

  9. 点击链接,取得href的值,但是不转向

    点击链接,取得href的值,但是不转向 $('.list a').click(function (e) {   e.preventDefault();//取消事件的默认动作.   $.ajax({   ...

  10. React中如何实现模态框每次打开都是初始界面

    问题描述如下 解决方案:每次点击打开模态框的时候为,当前模态框设置一个独立的key值,代码如下: /* * 上传文件的模块框控制 * */ showFileModal = () => { thi ...