前端之家收集整理的这篇文章主要介绍了
GO语言为结构体排序,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
package main
import (
"fmt"
"io/IoUtil"
"sort"
"time"
)
type info struct {
Name string
Time time.Time
}
type newlist []*info
func main() {
l,e := getFilelist("./")
if e != nil {
fmt.Println(e)
}
sort.Sort(newlist(l)) //调用标准库的sort.Sort必须要先实现Len(),Less(),Swap() 三个方法.
for _,v := range l {
fmt.Println("文件名:",v.Name,"修改时间:",v.Time.Unix())
}
}
func getFilelist(path string) ([]*info,error) {
l,err := IoUtil.ReadDir(path)
if err != nil {
return []*info{},err
}
var list []*info
for _,v := range l {
list = append(list,&info{v.Name(),v.ModTime()})
}
return list,nil
}
func (I newlist) Len() int {
return len(I)
}
func (I newlist) Less(i,j int) bool {
return I[i].Time.Unix() < I[j].Time.Unix()
}
func (I newlist) Swap(i,j int) {
I[i],I[j] = I[j],I[i]
}