利用标准库进行排序

Posted on Jul 13, 2022

将切片内元素按字母顺序排序。

import (
  sort
)
func demo() {
  var a = []string{"edf","fgh","abc","bad"}
  // 就是一个字符串切片,可以正常用切片的方法操作,如append之类的
	var keys sort.StringSlice
	for k, _ := range a {
		keys = append(keys, k)
	}
	keys.Sort()
	fmt.Println(keys)
	// 清空
	keys = sort.StringSlice{}
}

自定义数据结构的排序

ByOrdinal结构体实现了排序接口,然后用标准库的sort进行排序。

type ByOrdinal []Column

func (o ByOrdinal) Len() int           { return len(o) }
func (o ByOrdinal) Swap(i, j int)      { o[i], o[j] = o[j], o[i] }
func (o ByOrdinal) Less(i, j int) bool { return o[i].Ordinal < o[j].Ordinal }

// 
import (
	"sort"
)

var columns []Column
columns = make([]Column, 0)
sort.Sort(ByOrdinal(columns))