golang中如何按照结构体的某个字段排序(golang,开发技术)

时间:2024-05-08 11:31:16 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    golang%E4%B8%AD%E5%A6%82%E4%BD%95%E6%8C%89%E7%85%A7%E7%BB%93%E6%9E%84%E4%BD%93%E7%9A%84%E6%9F%90%E4%B8%AA%E5%AD%97%E6%AE%B5%E6%8E%92%E5%BA%8F

golang的sort包默认支持int, float64, string的从小大到排序:

int -> Ints(x []int)
float64 -> Float64s(x []float64)
string -> Strings(x []string)

同时它还提供了自定义的排序接口Interface,此接口保护三个方法。

golang默认提供了三个类型,他们都实现了Interface:
Float64Slice
IntSlice
StringSlice

方法1:先使用提供的从大到小排序,再翻转

方法二:自定义类型实现

按年纪从大到小排序

打印

[{20 12} {11 12} {10 12} {10 12} {9 12}]

按年纪从大到小,如果年纪相等的,按身高从小到到

打印

[{20 12} {10 11} {10 100} {10 110} {10 120}]

sort.Sort 并不保证排序的稳定性。如果有需要, 可以使用 sort.Stable ,用法就是将sort.Sort 替换为 sort.Stable

附:go根据结构体中任意字段进行排序

Sort()

Reverse()

Less(i,j int) bool

Len() int

Swap(i,j int)

本文:golang中如何按照结构体的某个字段排序的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:Java中如何处理空指针异常下一篇:

3 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18