开启无限可能:www.99热,您的数字游乐场

核心内容摘要

《少女たちよ》第四集
神秘的羁绊:不知火舞与三个小男孩的未解之缘

成品网站:您的在线业务加速器,告别从零开始的漫长征途

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

中国XXXXXL196价格-中国XXXXXL196价格应用

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

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