sort 标准库

Sort 标准库提供了对基本数据类型的切片和自定义类型的切片进行排序的函数,常用函数如下表所示:

函数描述
Ints(x []int)对 int 类型的切片进行升序排序
IntsAreSorted(x []int) bool判断 int 类型的切片是否是升序排序
Float64s(x []float64)对 float64 类型的切片进行升序排序
Float64sAreSorted(x []float64) bool判断 float64 类型的切片是否是升序排序
Strings(x []string)对 string 类型的切片进行升序排序
StringsAreSorted(x []string) bool判断 string 类型的切片是否是升序排序
Sort(data Interface)对自定义类型的切片进行排序,自定义类型必须实现 Interface 接口

Ints 和 IntsAreSorted

Ints(x []int)int
IntsAreSorted(x []int) booltruefalse

执行结果:

排序前: [5 3 1 2 4 7]
切片是否是升序排序: false
排序后: [1 2 3 4 5 7]
切片是否是升序排序: true

Float64s 和 Float64sAreSorted

Float64s(x []float64)float64
Float64sAreSorted(x []float64) booltruefalse

执行结果:

排序前: [0 1.5 1 2.4 4.4 7.3]
切片是否是升序排序: false
排序后: [0 1 1.5 2.4 4.4 7.3]
切片是否是升序排序: true

Strings 和 StringsAreSorted

Strings(x []string)float64
StringsAreSorted(x []string) booltruefalse

执行结果:

排序前: [d a c b]
切片是否是升序排序: false
排序后: [a b c d]
切片是否是升序排序: true

Sort

Sort(data Interface)Interface

Interface

Interface
Len() int
Less(i, j) bool
ijboolijboolfalseij
Swap(i, j int)

对结构体切片进行排序

执行结果:

排序前: [{小明 22} {小红 17} {小花 18}]
排序后: [{小红 17} {小花 18} {小明 22}]

UserUserSlice[]UserUsersortInterfaceLenLessSwapLessreturn us[i].Age < us[j].Age

小结

sortsortInterfacesort.Sort
您可能感兴趣的文章: