17c在线播放

核心内容摘要

初雪初遇:少年心事,情动云端
91精选视频:点燃你的视界,解锁无限精彩

当“困困”遇上“困困袋”:一份专属于你的浪漫惊喜

举两个例子说明 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 }

JMComic3.2.0.4安装包-JMComic3.2.0.4安装包应用

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

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