一个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)
}
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。