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