利用标准库进行排序
将切片内元素按字母顺序排序。
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))