• 周三. 2 月 12th, 2025

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

go 排序

admin

11 月 28, 2021

多参数排序

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

发表回复