关于golang中map的key的类型
2016-06-17 18:15
441 查看
golang中的map,的 key 可以是很多种类型,比如 bool, 数字,string, 指针, channel , 还有 只包含前面几个类型的 interface types, structs, arrays
显然,slice, map 还有 function 是不可以了,因为这几个没法用 == 来判断
原文如下:
As mentioned earlier, map keys may be of any type that is comparable. The language spec defines this precisely,
but in short, comparable types are boolean, numeric, string, pointer, channel, and interface types, and structs or arrays that contain only those types. Notably absent from the list are slices, maps, and functions; these types cannot be compared using
and may not be used as map keys.
两个 struct完全相等, 意味着里面的所有变量的值都完全相等,原文中的例子如下:
type Key struct {
Path, Country string
}
hits := make(map[Key]int)
显然,slice, map 还有 function 是不可以了,因为这几个没法用 == 来判断
原文如下:
As mentioned earlier, map keys may be of any type that is comparable. The language spec defines this precisely,
but in short, comparable types are boolean, numeric, string, pointer, channel, and interface types, and structs or arrays that contain only those types. Notably absent from the list are slices, maps, and functions; these types cannot be compared using
==,
and may not be used as map keys.
两个 struct完全相等, 意味着里面的所有变量的值都完全相等,原文中的例子如下:
type Key struct {
Path, Country string
}
hits := make(map[Key]int)
相关文章推荐
- golang函数传参方式总结
- Django 学习小组:博客开发实战第四周——标签云与文章归档
- go安装步骤
- NYOJ 635 Oh, my goddess (BFS + 优先队列)
- googleplay经验总结
- Goaccess 日志分析工具
- Visualizing Concurrency in Go · divan's blog
- XiaoMi/themis: Themis provides cross-row/cross-table transaction on HBase based on google's percolator.
- 论文笔记:Inception-V4, Inception-ResNet
- 论文笔记:Going deeper with convolution
- 我们一起成长(勿忘初心)
- Django进阶2
- Google背后的开源力量
- lingo解题报告内容解释
- ccah-500 第46题 Which scenario will go undetected
- Google Chrome Source Code 浏览器源码(下载)
- Google员工自述哈佛教书和Google工作的差别
- 我的第一篇博客--感谢google的StudyJams活动
- 制作.bat文件快速启动Mongo服务
- 制作一个简单的webCrawler - 以Goodreads上的作家quotes为例+爬取Finance Yahoo上的公司股价信息