源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

golang使用sort接口实现排序示例

  • 时间:2022-11-17 15:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:golang使用sort接口实现排序示例
本文实例讲述了golang使用sort接口实现排序的方法。分享给大家供大家参考,具体如下: 今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里. 其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成. 当然sort包也有几个常用的方法sort.Float64Slice sort.IntSlise sort.StringSlise,呵呵
[u]复制代码[/u] 代码如下:
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)     } }
希望本文所述对大家Go语言程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部