# TimePoint为自定义类型 type TimePoint []string func (t TimePoint) Len() int { return len(t) } func (t TimePoint) Swap(i, j int) { t[i], t[j] = t[j], t[i] } func (t TimePoint) Less(i, j int) bool { return t[i] < t[j] } func main() { timePoints := []string{"05:31", "22:08", "00:35"} sort.Sort(TimePoint(timePoints)) fmt.Println(timePoints) // [00:35 05:31 22:08] } # 上方的[]string还是基础类型,那么如何对自定义类型排序,请往下看 ## BikeStore为自定义类型,有一个字段amount表示自行车店拥有的自行车数量 type BikeStore struct { amount int } ## 下方就是自行车店排序规则 type BikeSort []BikeStore func (b BikeSort) Len() int { return len(b) } func (b BikeSort) Swap(i, j int) { b[i], b[j] = b[j], b[i] } func (b BikeSort) Less(i, j int) bool { return b[i].amount < b[j].amount } func main() { s1 := BikeSort{BikeStore{5}, BikeStore{1}, BikeStore{3}} sort.Sort(s1) # 结果: [{1} {3} {5}] }