golang笔记——map

tianyajuanke · · 2820 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

 

ages := make(map[string]int) // mapping from strings to ints

我们也可以用map字面值的语法创建map,同时还可以指定一些最初的key/value:

ages := map[string]int{
    "alice":   31,
    "charlie": 34,
}

这相当于

ages := make(map[string]int)
ages["alice"] = 31
ages["charlie"] = 34




使用内置的delete函数可以删除元素:

delete(ages, "alice") // remove element ages["alice"]
 

Map的迭代顺序是不确定的,并且不同的哈希函数实现可能导致不同的遍历顺序。在实践中,遍历的顺序是随机的,每一次遍历的顺序都不相同。这是故意的,每次都使用随机的遍历顺序可以强制要求程序不会依赖具体的哈希函数实现。如果要按顺序遍历key/value对,我们必须显式地对key进行排序,可以使用sort包的Strings函数对字符串slice进行排序。

简单的说,就是先遍历map,取出所有的Key存放到与map同长度的切片中,然后排序这个切片,再遍历这个切片取出map中的key即可。

 

 

通过key索引方式来获取value,会返回两个值,其中第二个值是是否存在,当不存在时,第一个值则为对应value的零值。

 

go语言没有提供 set 类型,但因为map的key也是不能重复的,所以可以通过 map 实现替代。

 


有疑问加站长微信联系(非本文作者)

本文来自:博客园

感谢作者:tianyajuanke

查看原文:golang笔记——map

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2820 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传