17c浏览器直接进入窗口

核心内容摘要

冠希实干张9分37秒展现高效执行力_1
78赛进13:一段跨越时空的传奇,一场永不落幕的经典

5G影院:解锁视听极致,点燃天天“爽”的观影狂欢!

举两个例子说明 sort.Interface实现多级排序。

例子 1学生成绩排序先按成绩降序成绩相同按姓名升序package main import ( fmt sort ) type Student struct { Name string Score int } type ByScoreAndName []Student func (s ByScoreAndName) Len() int { return len(s) } func (s ByScoreAndName) Swap(i, j int) { s[i], s[j] s[j], s[i] } func (s ByScoreAndName) Less(i, j int) bool { // 第一级按分数降序分数高的排前面 if s[i].Score ! s[j].Score { return s[i].Score s[j].Score } // 第二级分数相同时按姓名升序 return s[i].Name s[j].Name } func main() { students : []Student{ {Alice, 85}, {Bob, 90}, {Charlie, 85}, {David, 90}, } sort.Sort(ByScoreAndName(students)) for _, s : range students { fmt.Printf(%s: %d\n, s.Name, s.Score) } // 输出: // Bob: 90 // David: 90 // Alice: 85 // Charlie: 85 }例子 2员工排序先按部门升序部门相同按工资降序工资相同按工号升序package main import ( fmt sort ) type Employee struct { ID int Department string Salary float64 } type ByDeptSalaryID []Employee func (e ByDeptSalaryID) Len() int { return len(e) } func (e ByDeptSalaryID) Swap(i, j int) { e[i], e[j] e[j], e[i] } func (e ByDeptSalaryID) Less(i, j int) bool { // 第一级按部门升序 if e[i].Department ! e[j].Department { return e[i].Department e[j].Department } // 第二级部门相同时按工资降序 if e[i].Salary ! e[j].Salary { return e[i].Salary e[j].Salary } // 第三级工资相同时按工号升序 return e[i].ID e[j].ID } func main() { employees : []Employee{ {103, Engineering, 75000}, {101, Engineering, 80000}, {102, Engineering, 80000}, {201, Sales, 70000}, {202, Sales, 75000}, } sort.Sort(ByDeptSalaryID(employees)) for _, emp : range employees { fmt.Printf(ID: %d, Dept: %s, Salary: %.2f\n, emp.ID, emp.Department, emp.Salary) } // 输出: // ID: 101, Dept: Engineering, Salary:

8

00 // ID: 102, Dept: Engineering, Salary:

8

00 // ID: 103, Dept: Engineering, Salary:

7

00 // ID: 202, Dept: Sales, Salary:

7

00 // ID: 201, Dept: Sales, Salary:

7

00 }

黑料每日大赛-黑料每日大赛应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123