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