Go语言的对结构体排序工具sortutil

字号+ 编辑: 呆头鹅甲 修订: 呆头鹅甲 来源: Go语言中文网 2015-02-07 11:38 我要说两句(0)

普通的Go语言做结构体排序比较麻烦,在不强调极限性能的前提下,这个小工具方便大伙进行排序操作。

例子来源于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)
}
阅完此文,您的感想如何?
  • 鼓掌

    0

  • 鄙视

    0

  • 开心

    0

  • 愤怒

    0

  • 可怜

    0

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.交流群: PHP+JS聊天群

相关课文
  • go在arm上读取串口数据

  • Go语言截取指定字符串中间字符串的方法

  • go调用c使用比官方Cgo性能更加突出的c2goasm项目

  • Go语言框架之对比

我要说说
网上宾友点评
沙发已空
Go语言的对结构体排序工具sortutil