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(增刪改查)

我要說說
網上賓友點評