Go: Custom Sort
package main import ( "fmt" "math/rand" "sort" "time" ) // Vale Vale结构体 type Vale struct { Name string Age int } func (vale Vale) String() string { return fmt.Sprintf("Name=%v, Age=%v", vale.Name, vale.Age) } // ValeSlice Vale的切片 type ValeSlice []Vale func (valeSlice ValeSlice) Len() int { return len(valeSlice) } func (valeSlice ValeSlice) Less(i, j int) bool { // return valeSlice[i].Age < valeSlice[j].Age // Age Ascend return len(valeSlice[i].Name) > len(valeSlice[j].Name) } func (valeSlice ValeSlice) Swap(i, j int) { /* tmp := valeSlice[i] valeSlice[i] = valeSlice[j] valeSlice[j] = tmp*/ valeSlice[i], valeSlice[j] = valeSlice[j], valeSlice[i] } func main() { var intSlice = []int{7, 5, -5, 0, 3} sort.Ints(intSlice) fmt.Println(intSlice) rand.Seed(time.Now().Unix()) var valeSlice ValeSlice for i := 0; i < 10; i++ { intn := rand.Intn(100) vale := Vale{ Name: fmt.Sprintf("vale-%d", intn), Age: intn, } valeSlice = append(valeSlice, vale) } for _, v := range valeSlice { fmt.Println(v) } sort.Sort(valeSlice) fmt.Println("~~~~~After Sort~~~~~") for _, v := range valeSlice { fmt.Println(v) } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2021-05-18 npm
2021-05-18 MySQL: Pagination