猿问

对指针进行排序

考虑以下:


type Item struct {

    Title      string

    Date       time.Time

}  


type Items []Item


func (slice Items) Len() int {

    return len(slice)

}


func (slice Items) Less(i, j int) bool {

    return slice[i].Date.After(slice[j].Date)

}


func (slice Items) Swap(i, j int) {

    slice[i], slice[j] = slice[j], slice[i]

}

在 main 方法中,我有一个指向 的指针Item,必须对其进行排序。我的尝试是:


items := make(Items, len(in.Items)) //in.Items is of type []*Item

for i, value := range in.Items {

    items[i] = *value

}


sort.Sort(items)


in.Items = make([]*Item, len(items))

for i, value := range items {

    in.Items[i] = &value

}

虽然它可以满足我的需求,但还有其他方法可以做到这一点吗?


呼如林
浏览 158回答 1
1回答

千巷猫影

只需Items列出项目指针:type Items []*Item并且可以使用您已经描述的方法对其进行排序。就是这样。
随时随地看视频慕课网APP

相关分类

Go
我要回答