GO语言为结构体排序
发布时间:2020-12-16 18:41:04 所属栏目:大数据 来源:网络整理
导读:package mainimport ("fmt""io/ioutil""sort""time")type info struct {Name stringTime time.Time}type newlist []*infofunc main() {l,e := getFilelist("./")if e != nil {fmt.Println(e)}sort.Sort(newlist(l)) //调用标准库的sort.Sort必须要先实现Len(
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] } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |