Go by Example: Maps

Maps是Go语言内置的关联型数据类型(在其他语言有时候也叫做hashes或者dicts)。

package main

import "fmt"

func main() {

	// 创建一个空字典可以使用内置函数make: "make(map[键类型]值类型)"
	m := make(map[string]int)

	// 使用经典的"name[key]=value"来为键设置值
	m["k1"] = 7
	m["k2"] = 13

	// 用Println输出字典,会输出它所有的键值对
	fmt.Println("map:", m)

	// 使用 "name[key]" 获取一个键的值.
	v1 := m["k1"]
	fmt.Println("v1: ", v1)

	// 内置函数返回字典的键值对的个数
	fmt.Println("len:", len(m))

	// 内置函数delete从字典删除一个键对应的值
	delete(m, "k2")
	fmt.Println("map:", m)

	// 根据键来获取值有一个可选的第二个返回值;
	// 这个返回值表示字典中是否存在该键,
	// 如果存在为true,返回对应值,否则为false,返回零值
	// 有的时候需要使用这个返回值来判断返回结果到底是存在的值还是零值
	// 比如字典不存在键x对应的整型值,返回零值就是0,但是恰好字典中有
	// 键y对应的值为0,这个时候需要那个可选返回值来判断是否零值。
	_, ok := m["k2"]
	fmt.Println("ok:", ok)

	// 你可以用 ":=" 在定义的同时初始化一个字典
	n := map[string]int{"foo": 1, "bar": 2}
	fmt.Println("map:", n)
}

输出

$ go run maps.go
map: map[k1:7 k2:13]
v1:  7
len: 2
map: map[k1:7]
prs: false
map: map[foo:1 bar:2]

当使用fmt.Println 打印输出字典时,输出格式为: map[k:v k:v]。

要了解更多关于字典,请查看学习Golang语言(7): 类型--字典

下一个例子: Go by Example:  Range.

英文原文

时间: 2024-12-29 23:22:39

Go by Example: Maps的相关文章

【BZOJ】1382: [Baltic2001]Mars Maps (线段树+扫描线)

1382: [Baltic2001]Mars Maps Time Limit: 5 Sec  Memory Limit: 64 MB Description 给出N个矩形,N<=10000.其坐标不超过10^9.求其面积并 Input 先给出一个数字N,代表有N个矩形. 接下来N行,每行四个数,代表矩形的坐标. Output 输出面积并 Sample Input 2 10 10 20 20 15 15 25 30 Sample Output 225 本以为是傻逼题,没想到不容易啊- 线段树+扫描

在Google Maps 上点击标签后显示说明

JS如下: (function() { ????window.onload = function() { ? ????????// Creating an object literal containing the properties ????????// you want to pass to the map ????????var options = { ????????????zoom: 3, ????????????center: new google.maps.LatLng(37.0

笔记:MyBatis Mapper XML文件详解 - Result Maps

Result Maps(结果集) resultMap 元素是 MyBatis 中最重要最强大的元素.它就是让你远离 90%的需要从结果 集中取出数据的 JDBC 代码的那个东西, 而且在一些情形下允许你做一些 JDBC 不支持的事 情. 事实上, 编写相似于对复杂语句联合映射这些等同的代码, 也许可以跨过上千行的代码. ResultMap 的设计就是简单语句不需要明确的结果映射,而很多复杂语句确实需要描述它们 的关系,你已经看到简单映射语句的示例了,但没有明确的 resultMap.比如: <s

Win8.1应用开发之Bing Maps

这里介绍怎样进行Bing Maps的开发.首先我们须要在我们的程序中引入Bing Map的SDK.详细方法,这里推荐一个链接<win8>使用Bing地图.这样一个hello world便出来了.这里主要介绍一些主要的API.进行一些基础性的开发. 在整个开发中,给我感触最深的是.在网上资料稀少的情况下.查看研究Bing Map给出的API是最有效的方法(Map API). 或许API的凝视是模棱两可,但仅仅要我们去试.便能了解这些方法的功能. 假设遇到hello world不能显示地图,在C#

Exercise: Maps (单词统计)

A Tour of Go Exercise: Maps https://tour.golang.org/moretypes/23 WordCount (单词统计) 是一个很经典的小程序了,在很多编程入门教程中都会出现. 这道题比较简单,但也有一些知识点值得一提. 上面这个答案我是参考了网上别人写的.但在参考别人之前我也自己解题了,其中,唯一不同之处是这一句: m[word]++ 我本来写的是: _, ok := m[word] if ok { m[word]++ } else { m[word]

在Google Maps 上点击标签显示说明并保持不消失

JS如下: (function() { ????window.onload = function() { ????????// Creating an object literal containing the properties ????????// we want to pass to the map ????????var options = { ????????????zoom: 3, ????????????center: new google.maps.LatLng(37.09,

如何在Google Maps 添加多个标记

JS如下: (function() { ????window.onload = function() { ????????// Creating an object literal containing the properties ????????// we want to pass to the map ????????var options = { ????????????zoom: 12, ????????????center: new google.maps.LatLng(40.725

Guava包学习---Maps

Maps包方法列表: 还是泛型创建Map: public static <K, V> HashMap<K, V> newHashMap() { return new HashMap<K, V>(); } public static <K, V> HashMap<K, V> newHashMapWithExpectedSize(int expectedSize) { return new HashMap<K, V>(capacity(e

[转] Download Images from Multiple Maps

转载自 李旭, Tool: Download Images from Multiple Maps Summary SAS Planet是一款俄罗斯绿色免费软件,一直持续不断更新.该软件最大的一个特点就是无水印地从多种网络地图上下载影像,比如Google Earth.ESRI.Yahoo!等等,缺点是至今该软件的英文帮助还不强大,寥寥数页,俄文帮助比较详细,这对于该软件的理解和掌握有困难. 下载地址:Downloads. Example 试举一例说明下载高清影像之过程.打开SAS Planet,选

随时都可使用的Mindjet Maps for Android

Mindjet Maps for Android有着毫不逊色于桌面思维导图软件的操作功能,虽然相对电脑界面较小,不能用鼠标操作,但完美的结合了触屏功能及其移动功能后,也是能够灵活掌控界面主题. 本文为你介绍了两种可以在Mindjet Maps for Android进行移动主题的方法. 如若未下载可以点击Mindjet Maps for Android进行下载. 方法一: 长按主题,拖拽主题,你会看见主题的上一层级会标黄,根据标示来对主题进行移动,确立移动位置松开即可. 方法二: 进入剪切工具栏