爱情岛独家论坛:解锁心灵的隐秘花园,遇见未知的浪漫

核心内容摘要

裸片:一场关于真实与想象的感官盛宴
星巴克同款“一键脱衣”

探索东京的潮流脉搏:www.东京热,点燃你的都市活力

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

7x7x7x7x任意槽蘑菇-7x7x7x7x任意槽蘑菇应用

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

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