Golang排序

sort data with golang

利用标准库排序

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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{}
}

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

自定义数据结构的排序

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
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))
updatedupdated2022-08-162022-08-16