http://www.dotcoo.com/golang-sort
今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里.
其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成.
当然sort包也有几个常用的方法sort.Float64Slice sort.IntSlise sort.StringSlise,呵呵
package main import ( "fmt" "sort" ) type MapSorter []Item type Item struct { Key string Val int64 } func NewMapSorter(m map[string]int64) MapSorter { ms := make(MapSorter, 0, len(m)) for k, v := range m { ms = append(ms, Item{k, v}) } return ms } func (ms MapSorter) Len() int { return len(ms) } func (ms MapSorter) Less(i, j int) bool { return ms[i].Val < ms[j].Val // 按值排序 //return ms[i].Key < ms[j].Key // 按键排序 } func (ms MapSorter) Swap(i, j int) { ms[i], ms[j] = ms[j], ms[i] } func main(){ m := map[string]int64 { "e": 10, "a": 2, "d": 15, "c": 8, "f": 1, "b": 12, } ms := NewMapSorter(m) sort.Sort(ms) for _, item := range ms { fmt.Printf("%s:%d\n", item.Key, item.Val) } }
相关推荐
golang实现的常用排序算法 golang实现的常用排序算法 golang实现的常用排序算法
主要介绍了golang使用sort接口实现排序的方法,简单分析了sort接口的功能并实例演示了基于sort接口的排序实现方法,需要的朋友可以参考下
目录网盘文件永久链接 project.zip 第l章课程介绍.a 第2章并发栏型Tan 第3章Go的协程rar 第4章示例环境搭建ram 第5章Go批里生成日志ar 第6章统计系统框架构成.rar 第7章统计统之口志费.rar 第8章统计系统之批星解析a...
alipay, 支付宝集成接口的 golang 实现
用 500 行 Golang 代码实现高性能的消息回调中间件
本文实例讲述了golang实现的文件上传与文件下载功能。分享给大家供大家参考,具体如下: upload.go 复制代码 代码如下:package common import ( “io/ioutil” “os” “path” “github.com/gin-gonic/gin...
循环鼠标自动点击功能--- Golang实现 有代码和可执行程序。
golang爬虫代码,本demo是爬取贴吧的分页,并且可以获取每个URL里面的内容! 实现了找到DIV和href。... 例如: [\s\S]+?href="(\/p\/[\s\S]+?...使用方式,命令行输入:go run 10Golang方式实现贴吧爬虫demo.go
Pion WebRTC是WebRTC Native API的纯Golang实现
GomitmProxy是想用golang语言实现的mitmproxy,主要实现http代理,目前实现了http代理和https抓包功能。安装使用 git clone https://github.com/sheepbao/gomitmproxy.git cd gomitmproxy go build例子 ...
Golang实现HTML转PDF
主要介绍了Golang 使用接口实现泛型的方法示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
golang编写实现linux终端下载显示彩色进度条,类似于pip install的下载进度条的效果
go_基于Golang实现的快速排序算法
Golang 实现转发服务
因 PHP 的部署对普通用户来说太复杂,所以改用 Golang 开发。可以方便用户部署和实用。 开发缘起是公司IT部门需要一款简单实用的项目接口文档管理和分享的系统。其功能和界面源于 kancloud 。 可以用来储存日常...
raft, Raft协议的Golang实现 raft raft是管理复制日志并可以与FSM一起管理复制状态机的转到库。 它是一个提供一致性协议的库。当复制状态机是许多分布式系统的关键组件时,这种库的使用情况非常接近。 它们支持构建...
2.1.7 使用Golang实现万人同服的游戏服务器@袁锋峰.pdf
golang实现的windows上的ls命令,可作为windows上的一个小工具。