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

字号+ 编辑: IT男在阿里 修订: 种花家 来源: Go语言中文网 2023-09-11 我要说两句(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语言GORM如何更新字段

  • gorm如何创建记录与模型定义需要注意什么

  • gorm一般查询与高级查询

  • GORM时间戳跟踪及CURD(增删改查)

我要说说
网上宾友点评