• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Golang > golang使用sort接口实现排序示例

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

作者: 字体:[增加 减小] 来源:互联网

通过本文主要向大家介绍了golang sort,golang 接口,golang 接口指针,golang 空接口,golang等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了golang使用sort接口实现排序的方法。分享给大家供大家参考,具体如下:

今天看见群里再讨论排序的sort.Interface的实现,有童鞋一直搞不定,我就上手了一下,哦耶搞定了,代码放在这里.

其实很简单sort.Interface借口有三个方法,给自己的struct实现这三个方法,然后用将自己的结构体传给sort.Sort方法就排序完成.

当然sort包也有几个常用的方法sort.Float64Slice sort.IntSlise sort.StringSlise,呵呵
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)
    }
}</div>

希望本文所述对大家Go语言程序设计有所帮助。

</div>

您可能想查找下面的文章:

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

相关文章

  • Go语言计算指定年月天数的方法
  • 理解Golang中的数组(array)、切片(slice)和map
  • 浅谈Go语言中字符串和数组
  • Golang算法问题之数组按指定规则排序的方法分析
  • Go语言模拟while语句实现无限循环的方法
  • GO语言实现简单TCP服务的方法
  • golang image图片处理示例
  • go语言执行等待直到后台goroutine执行完成实例分析
  • 初步解读Golang中的接口相关编写方法
  • Go语言获取数组长度的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • go语言实现sqrt的方法
    • Go语言中的Slice学习总结
    • go语言在请求http时加入自定义http header的方法
    • go语言实现通过FTP库自动上传web日志
    • Go语言多值替换的HTML模板实例分析
    • 在Go程序中实现服务器重启的方法
    • 简单了解Go语言中函数作为值以及函数闭包的使用
    • Go语言生成随机数的方法
    • go语言简单网络程序实例分析
    • Go语言字典(map)用法实例分析【创建,填充,遍历,查找,修改,删除】

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有