Go语言学习笔记(5)——集合Map
集合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的更多相关文章
- Go语言学习笔记十三: Map集合
Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...
- 2017-04-21周C语言学习笔记
C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...
- 2017-05-4-C语言学习笔记
C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...
- GO语言学习笔记(一)
GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...
- Haskell语言学习笔记(88)语言扩展(1)
ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...
- Go语言学习笔记十二: 范围(Range)
Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...
- Go语言学习笔记六: 循环语句
Go语言学习笔记六: 循环语句 今天学了一个格式化代码的命令:gofmt -w chapter6.go for循环 for循环有3种形式: for init; condition; increment ...
- Go语言学习笔记二: 变量
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version.另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件. 定义变 ...
- Java学习笔记之---集合
Java学习笔记之---集合 (一)集合框架的体系结构 (二)List(列表) (1)特性 1.List中的元素是有序并且可以重复的,成为序列 2.List可以精确的控制每个元素的插入位置,并且可以删 ...
随机推荐
- java1.8 lambda进行并行运算
parallelStream()支持并行运算: package com.roocon.thread.t2; import java.util.Arrays; import java.util.List ...
- java四种对象引用类型
java四种对象引用类型 对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序 ...
- Go by Example-变量
在上一节中提到了值类型,但是他们都是写在输出语句里的,如果后面程序需要用的话就显得非常的不方便,所以更好的办法就是把它们定义成变量,然后在调用. 变量 和Python不同的是,Go语言中的变量是需要的 ...
- Error: unable to load xmlsec-openssl library
yum install libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel
- php - thinkphp3.2-phpQrcode生成二维码
import('/Doctor.Logic.phpqrcode',APP_PATH,'.php');// import('@.Doctor.Logic');$value = 'http://www.c ...
- 解决kali无法连接网络问题
键入 ifconfig -a 查看网卡 ,是否存在 键入 leafpad /etc/network/interfaces 查看其中是否有如下语句,没有添加上即可:auto eth0iface eth0 ...
- Elasticsearch .net 记录-1
简介 ElasticSearch是一个开源的分布式搜索引擎,具备高可靠性,支持非常多的企业级搜索用例.像Solr4一样,是基于Lucene构建的.支持时间时间索引和全文检索.官网:http://www ...
- 使用Lock对象实现同步效果
Lock是一个接口,为了使用一个Lock对象,需要用到 Lock lock = new ReentrantLock(); 与 synchronized (someObject) 类似的,loc ...
- 【ARTS】01_34_左耳听风-201900701~201900707
ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...
- cisco 各类子网的划分
C类地址子网划分 /25 子网掩码为128: 1位的取值为1,其他7位的取值为0(10000000): 块大小128: (256-128): 2个子网,每个子网最多包含126台主机: /26 子网掩码 ...