登录
首页 >  Golang >  Go问答

对 Golang 的结构体指针切片进行排序

来源:stackoverflow

时间:2024-03-05 16:12:15 328浏览 收藏

本篇文章给大家分享《对 Golang 的结构体指针切片进行排序》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

如何对指向结构的指针切片进行排序。我正在尝试根据开始时间对切片进行排序。

/**
 * Definition for an Interval.
 * type Interval struct {
 *     Start int
 *     End   int
 * }
 */

func employeeFreeTime(schedule [][]*Interval) []*Interval {
    
    fmt.Println("Schedule initial #", schedule)
    sort.Slice(schedule, func(i,j int) bool{
        return schedule[i].Start < schedule[j].Start
    })
    
    fmt.Println(schedule)
    return nil
    
}

解决方案


发送一个切片,而不是一个切片,您就可以很好地排序:

/**
* Definition for an Interval.
*/
 type Interval struct {
     Start int
     End   int
 }


func employeeFreeTime(schedule []*Interval) []*Interval {

    fmt.Println("Schedule initial #", schedule)
    sort.Slice(schedule, func(i,j int) bool{
        return schedule[i].Start < schedule[j].Start
    })

    fmt.Println(schedule)
    return nil

}

func main() {
    intervals :=  []*Interval {
        {
            Start: 10,
            End:   100,
        },
        {
            Start: 5,
            End:   100,
        },
    }
    employeeFreeTime(intervals)
}

今天关于《对 Golang 的结构体指针切片进行排序》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>