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]] // 排序后