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
原文地址:https://www.cnblogs.com/huay/p/15018714.html