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