go 排序

多参数排序

package code

import "sort"

type CanRow struct {
    CANChannel string `json:"can_channel"`
    CANBUSID   string `json:"canbusid"`
    SignalName string `json:"signal_name"`
}

//升序
//CANChannel升序
func SortByCANChannel(u []CanRow) {
    sort.Slice(u, func(i, j int) bool { // asc
        return u[i].CANChannel < u[j].CANChannel
    })
}

//多参数排序
func SortByMany(u []CanRow) {
    sort.Slice(u, func(i, j int) bool { // asc
        if u[i].CANChannel == u[j].CANChannel {
            if u[i].CANBUSID == u[j].CANBUSID {
                return u[i].SignalName < u[j].SignalName
            }
            return u[i].CANBUSID < u[j].CANBUSID
        }
        return u[i].CANChannel < u[j].CANChannel
    })
}
View Code

 

posted @ 2021-07-16 09:45  jiuchen  阅读(27)  评论(0编辑  收藏  举报