Go语言的小细节--map

Go和Python一样,都有map。在Python里叫做字典,在Go里叫做映射。

与Go相比Python对map的使用相对更加灵活,毕竟在Pyhton的哲学里一切皆对象。

在Go里面创建map有两种方法,一种是先申明在赋值,另一种是在申明的时候直接进行赋值。

在这里Go创建map的方式与C++有点像。

先说第一种:先申明再赋值

var item map[string]stringitem = make(map[string]string, 1000)

由于是刚开始学习Go语言,对于Go机制的理解还不够深,所以我只能大概用C++的方式来解释一下,说的不对的地方请大神指正。这里的先申明map类型但是系统还没有给item这个变量分配空间,使用make语句来让系统给它分配内存空间。如果没有make这条语句,系统会报错。make的第二个参数是向系统申请多大的空间。这个100是map的存储能力。

再说第二种:申明的时候直接进行赋值

(1)var item map[string]string{"aaa":, "111", "bbb":"222"}(2)var item map[string]string{    "aaa":"111",    "bbb":"222",
}(3)item := map[string]string{"aaa":"111", "bbb":"222"}(4)item := map[string]string{    "aaa":"111",    "bbb":"222",
}

为了查看方便,我在标记了序号。上面一共有四种方法,仔细看其实也就是两种。

(1)(2)是先申明为map类型进行赋值 (3)(4)是直接进行赋值,连申明都省去了。系统会自动为item这个变量进行类型的判断并赋值。

这里有个小细节

(1)和(2)其实是一样的,只是(1)是在一行,(2)是分成了多行。当遇到需要写很多key:value对时(2)显示的相对更直观一些。细节就在于在如果一行写的话,最后一个key:value后面不需要加逗号,如果分行写的话,最后一个key:value后面要加逗号。否则系统就会报错。

原文发布于微信公众号 - Golang语言社区(Golangweb)

原文发表时间:2016-06-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android机动车

java内部存储简述

在实际项目中,会涉及到很多大量数据的访问,存储或者是计算,这个时候如果可以用合适的容器来存储这些数据,就会达到事半功倍的效果,也就是说,当你的程序遇到瓶颈的时候...

1413
来自专栏Python自动化测试

Python之函数学习(八)

python语言,即可以进行函数式的编程的语言,又是可以进行面向对象编程的语言,所谓函数,简单的理解就是将一些语句集合到一起,这样可以在程序中多次的...

1043
来自专栏Java技术栈

一张图搞清楚Java异常机制

下面是Java异常类的组织结构,红色区域的异常类表示是程序需要显示捕捉或者抛出的。 ? Throwable Throwable是Java异常的顶级类,所有的异常...

2915
来自专栏开发技术

排序之简单选择排序

  本篇博客是在伍迷兄的博客基础上进行的,其博客地址点击就可以进去,里面好博客很多,我的排序算法都来自于此;一些数据结构方面的概念我就不多阐述了,伍迷兄的博客中...

1102
来自专栏swag code

多线程的实现方法

      从Thread类中实例化的对象即代表线程,启动一个线程就是建立一个Thread实例。因为完成线程真正功能的代码放在类的run()方法中,所以可以将线...

612
来自专栏小樱的经验随笔

UVa 11461 - Square Numbers【数学,暴力】

题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=...

3235
来自专栏余林丰

初识Java反射

要详细的了解Java反射,就得要了解Java的类加载以及何为运行时动态加载等等概念。本文抛开其余概念,简单介绍Java反射,详细介绍会在以后有一个系统而全面的认...

25410
来自专栏每日一篇技术文章

Swift3.0 - 扩展

b.如果想要在定义协议的时候,不指定变量名称,在实现协议的时候,再去设定变量类型,应该怎么写?

803
来自专栏人人都是极客

gcc内嵌汇编详解

有时候我们希望在C/C++代码中使用嵌入式汇编,因为C中没有对应的函数或语法可用。比如我最近在ARM上写FIR程序时,需要对最后的结果进行饱和处理,但gcc没有...

1942
来自专栏黑泽君的专栏

java基础学习_反射、装饰模式、JDK新特性_day27总结

962

扫码关注云+社区

领取腾讯云代金券