一个Go语言的对结构进行排序的小工具类sortutil

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

例子来源于https://github.com/pmylund/sortutil 。sortutil采用反射机制,可以对结构内的任意一个字段进行排序,使用还是比较方便的。缺点是采用反射机制,可能排序性能不是最好的。 如果是一般的应用,sortutil也够用了。 对性能比较苛刻要求的朋友,也可以自己参考Go官方API的sort包例子编写自己的排序实现。

sortutil的具体实现这里就不介绍了,自己看代码吧。需要提醒的是,sortutil只能用在Slice结构,不是数组。下面再贴个怎么使用sortutil的例子:
//test_sort.go

package main

 

import "fmt"

import "sortit"

 

type Record struct {

Name  string

Value float32

}

 

func main() {
        //定义一个Slice

v := []Record{

{"twelve", 12},

{"eleven", 11},

{"two", 2},

{"three", 3},

{"unknow", 0},

}

sortit.ByField(v, "Value")

fmt.Printf("%v\n", v)

fmt.Println()

sortit.ByField(v, "Name")

fmt.Printf("%v\n", v)

}


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

本文来自:开源中国博客

感谢作者:qinhui99

查看原文:一个Go语言的对结构进行排序的小工具类sortutil

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

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