加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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]
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读