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

例子来源于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)

}

转载于:https://my.oschina.net/qinhui99/blog/69613

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值