golang 自定義類型排序 字典排序


package main

import (
	"fmt"
	"sort"
)

type SortByGszzl []map[string]string // 設置自定義類型
// 一個內置的排序算法需要知道三個東西:
//  1.序列的長度, Len
//  2.表示兩個元素比較的結果,Less
//  3.一種交換兩個元素的方式;Swap

// 實現接口
func (a SortByGszzl) Len() int           { return len(a) }
func (a SortByGszzl) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
func (a SortByGszzl) Less(i, j int) bool { return a[i]["gszzl"] < a[j]["gszzl"] }

func main() {
	b := SortByGszzl{
		{"gszzl": "2"},
		{"gszzl": "3"},
		{"gszzl": "1"},
	}
	fmt.Println(b)
	sort.Sort(b)
	fmt.Println(b)
}

輸出結果:

[map[gszzl:2] map[gszzl:3] map[gszzl:1]]  // 排序前
[map[gszzl:1] map[gszzl:2] map[gszzl:3]]  // 排序后


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM