`
balsampears
  • 浏览: 49494 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

Go基础学习: map

阅读更多
记录下Go的基础学习笔记,仅供自己参考,如果能帮到您,那是我的荣幸

map,Go里面称之为映射,一种像脚本语言使用数组的方式
常规用法示例:
	m := map[string] int {
		"aa":100,
		"bb":100,
		"cc":100,
	}
	fmt.Printf("%d--%d\n", len(m),m["aa"]);

输出:
3--100

要注意的是,如果取一个不存在的索引,会返回对应类型零值:
	m := map[string] int {
		"aa":100,
		"bb":100,
		"cc":100,
	}
	fmt.Printf("%d\n", m["xx"]);//不存在,该map对应的类型是int,所以返回int类型的零值:0

输出:
0

你可能就要问了,我们日常开发中,经常要检测有没有这个索引时,如何做啊?总不能判为0时,就表示不存在吧,因为有可能我的值就是0啊,放心,GO都想到了,这样即可:
	m := map[string] int {
		"aa":0,
		"bb":100,
		"cc":100,
	}
	n, ok := m["aa"]
	if ok {
		fmt.Printf("found aa:%d \n",n);
	}else{
		fmt.Printf("not found aa \n");
	}
	n, ok = m["xx"]
	if ok {
		fmt.Printf("found xx:%d \n",n);
	}else{
		fmt.Printf("not found xx \n");
	}

输出:
found aa:0
not found xx

还有一种情况,我只想判断有没有存在,而不想取里面的值,可以吗?
可以的,这样即可:
	m := map[string] int {
		"aa":0,
		"bb":100,
		"cc":100,
	}
	_, ok := m["aa"]//使用_表示一个空白标识,可以理解为放弃这个返回值
	if ok {
		fmt.Printf("found aa\n");
	}else{
		fmt.Printf("not found aa \n");
	}
	_, ok = m["xx"]
	if ok {
		fmt.Printf("found xx\n");
	}else{
		fmt.Printf("not found xx \n");
	}

输出:
found aa
not found xx

定义完map后,还可以加值吗?可以的:
	m := map[string] int {
		"aa":0,
		"bb":100,
		"cc":100,
	}
	m["xx"] = 111
	fmt.Printf("%d\n", m["xx"]);

输出:
111

如何删除里map里面的某个索引及对应的值:
	m := map[string] int {
		"aa":0,
		"bb":100,
		"cc":100,
	}
	m["xx"] = 111
	delete(m,"xx")
	fmt.Printf("%d\n", m["xx"]);

输出:
0

如何遍历map:
	m := map[string] int {
		"bb":100,
		"cc":100,
	}
	m["xx"] = 111
	for k,v := range m{
		fmt.Printf("%s=%d\n",k,v);
	}

输出:
bb=100
cc=100
xx=111


分享到:
评论

相关推荐

    GO语言基础学习文档

    本篇学习文档主要涵盖了GO语言的基础知识,包括环境搭建、命令使用、基本语法、流程控制、函数、面向对象特性以及并发和Web开发的基础。 一、GO语言环境搭建 在开始学习GO语言之前,首先需要配置好环境。GOROOT是GO...

    golang基础教程-go语言快速入门.zip

    《Go语言快速入门:Go语言基础教程》 Go语言,又称Golang,是Google在2009年推出的一种开源编程语言,由罗伯特·格瑞史莫、罗布·派克和肯特·贝克等大神设计。Go语言的设计目标是简单、高效、安全,特别适合构建...

    Go语言学习笔记

    Go语言学习笔记是关于Go语言基础入门篇的笔记,主要介绍Go语言基础语法、数据类型、逻辑语句等相关知识点。 语言概述 Go语言是一种开源的编程语言,能让构造简单、可靠且高效的软件变得容易。Go语言是从2007年末由...

    Go 学习笔记 第四版 pdf

    根据提供的信息,我们可以总结出这份文档是关于Go语言学习笔记的部分内容,主要涵盖了Go语言的基础概念、语法结构、数据类型以及并发模型等关键知识点。以下是对这些知识点的详细解析: ### Go语言概述 Go(也称作...

    学习GO语言中文版

    根据提供的文件信息,内容涉及学习GO语言(又称Golang)的基础知识。GO语言是一种静态类型、编译型语言,由Google开发,旨在提升编程效率。GO语言简洁、快速、并且支持并发,非常适合系统编程和网络服务。文档内容...

    Go 学习笔记——雨痕

    Go语言,又称Golang,是一种静态类型的编程语言,由Google开发,于2007年首次对外公布,并在2009年进行了...通过本学习笔记的内容,我们可以对Go语言有一个全面而系统的认识,为深入学习和应用Go语言打下坚实的基础。

    golang基础学习资料

    本篇学习资料将深入介绍 Go 语言的基础概念,帮助初学者快速入门。 一、简介 Go 语言的官方文档是学习的首选资源,它包含了详细的教程、语言规范、标准库和工具链的说明。官方文档的易读性和实用性使得自学 Go 语言...

    go语言学习参考实例

    Go语言,也被称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。它的设计目标是提高开发效率,同时保持程序的高性能和可靠性。Go语言以其简洁的语法、高效的并发模型以及...

    Go语言学习之认识Golang

    ### Go语言学习之认识Golang #### 一、引言 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的并发模型以及丰富的标准库而闻名。本文将从Go语言的基础入手,通过具体代码...

    Go语言基础、进阶、提高课程第六节 Go语言结构体,切片,map,游戏用户留存1

    通过学习Go语言的结构体、切片和映射,可以更深入地理解和掌握面向对象编程和数据组织,这在开发各种软件项目,尤其是游戏开发中非常重要。同时,理解如何提升用户留存是游戏运营的关键,对于维持游戏活跃度和盈利至...

    Go 学习笔记 第六版 下卷 - 预览.pdf

    2. Go语言的数据类型:讲解Go语言中的基础数据类型(如int、float、bool、string等),以及如何声明和使用数组、切片、映射(map)、通道(channel)等。 3. Go语言的并发模型:介绍Go语言中的goroutine和channel等并发...

    Go学习笔记-第四版-雨痕

    《Go学习笔记-第四版》是由知名编程作者雨痕编写的关于Go语言的教程,旨在帮助读者深入理解和掌握Go语言的各个方面。...对于想要学习Go语言或已经有一定基础并希望深入的开发者来说,这是一本不可多得的参考资料。

    go语言编程,Go语言程序设计(英文版),学习 Go 语言(Golang),golang-china读书笔记

    1. **Go语言基础** - **语法简洁**:Go语言的语法设计简洁明了,易于理解和学习,没有C++或Java那样的复杂性。 - **类型系统**:Go语言有静态类型,变量必须在声明时指定类型,可以使用`int`、`string`等内置类型...

    golang开发.pdf

    根据提供的文件内容,可以了解到这是一份关于Go语言基础教程的文档,以下是对文档内容的知识点归纳: 1. Go语言基础:教程从最基础的Go语言介绍开始,涵盖了Go语言的发展历史和背景知识。 2. Go官方文档:文档中...

    Go语言学习资料

    特别地,Go语言中的数组、切片、字符串以及map的使用方式,都是学习这门语言必须掌握的基础。 - Go语言的核心结构与技术:这里详细介绍了Go语言的核心技术细节,包括控制结构(if-else、switch、for、break与...

    Go-Go入门学习的一组示例golang代码

    以上只是Go语言基础知识的一部分,实际的"working-with-go-master"压缩包可能包含了更丰富的示例,如文件操作、网络编程、反射、上下文管理等。通过实践这些示例,你可以更深入地了解Go语言,并提升编程能力。学习Go...

    基于Go语言的学习笔记(附代码)

    本学习笔记主要涵盖了Go语言的基础知识,包括类型、表达式、函数、数据结构、方法、接口、并发以及包管理等多个方面,并附带了源码分析和附录中的工具、调试和测试等内容。 一、类型 1. 变量:Go语言中的变量需要...

    Go-syncmap一个基于代码生成的Gosync.Map类型实现

    在Go编程语言中,`sync.Map`是一种线程安全的数据结构,它提供了高效并发环境下的键值对存储。...同时,这也是一个很好的学习资源,可以帮助你提升在Go语言中的并发编程技巧和代码生成工具的使用经验。

Global site tag (gtag.js) - Google Analytics