还是以前的笔记,上传一下
package test
import (
"fmt"
"sort"
)
func Test2() {
Ages := []int{3, 11, 45, 11, 98, 11}
Names := []string{"huangfeng", "huangfeng", "mycat", "baideng", "fanbingbing", "abc"}
CityNums := []int{1, 1, 4, 4, 7, 4}
// 创建测试用的切片
var Persons []PersonForSort
for i := range Ages {
p := PersonForSort{Age: Ages[i], Name: Names[i], CityNum: CityNums[i]}
Persons = append(Persons, p)
}
fmt.Println("原生切片 ", Persons)
//开始排序逐步添加至三个排序条件
var PersonCopy1 = make([]PersonForSort, len(Persons))
var PersonCopy2 = make([]PersonForSort, len(Persons))
copy(PersonCopy1, Persons)
copy(PersonCopy2, Persons)
// 条件一:年龄升
// 我们使用的是sort.Slice方法实现自定义排序规则
sort.Slice(Persons, func(i, j int) bool {
return Persons[i].Age < Persons[j].Age
})
// 查看第一次排序的结果
fmt.Println("条件一的结果 ", Persons)
// 条件二:年龄升序,年龄相同则