go语言结构体排序
簡言
1. ?go語言的基本數據類型可以直接調用sort()函數進行排序
2. ?結構體的排序需要實現三個函數(獲取長度函數,交換函數,比較函數)即可
實驗如下圖
源代碼如下
package main import ("fmt""sort" )// 學生信息 type Student struct {Age intScore int }// 結構體數組 type Students []*Student // 下面的三個函數必須實現(獲取長度函數,交換函數,比較函數(這里比較的是年齡)) func (s Students) Len() int {return len(s) } func (s Students) Swap(i, j int) {s[i], s[j] = s[j], s[i] } func (s Students) Less(i, j int) bool {return s[i].Age < s[j].Age }func main() {// 新建3個學生信息,這里特意用指針,表示指針也沒問題;當然直接用結構體也是可以的Data := []*Student{}Data = append(Data, &Student{Age: 10, Score: 100})Data = append(Data, &Student{Age: 9, Score: 90})Data = append(Data, &Student{Age: 11, Score: 110})sort.Sort(sort.Reverse(Students(Data)))fmt.Printf("根據年齡從大到小排序 \n")for i := 0; i < len(Data); i++ {fmt.Printf("第%v個學生%+v \n", i, Data[i])}sort.Sort(Students(Data))fmt.Printf("\n根據年齡從小到大排序 \n")for i := 0; i < len(Data); i++ {fmt.Printf("第%v個學生%+v \n", i, Data[i])} }?
總結
- 上一篇: linux中top性能分析工具中的TIM
- 下一篇: df -h 显示100%的解决办法