快速排序结构体golang

实现功能说明

列出当前目录的所有文件的修改时间,和文件名称。
定义的结构体

type info struct {
	Time time.Time
    Name string
}

完整的代码

完整的程序,部分说明在注释部分。

package main

import (
    "fmt"
    "io/ioutil"
    "sort"
    "time"
)

type info struct {
	Time time.Time
    Name string
}

//后面调用标准库的sort.Sort必须要先实现Len(),Less(),Swap() 三个方法.
type newlist []*info
func (L newlist) Len() int {
    return len(L)
}
func (L newlist) Less(i, j int) bool {
    //这里写大于或着小于需要根据实际的升降来决定,不是函数名
    return L[i].Time.Unix() < L[j].Time.Unix()
}
func (L newlist) Swap(i, j int) {
    L[i], L[j] = L[j], L[i]
}

func main() {
    filesList, e := ioutil.ReadDir("./")
    if e != nil {
        fmt.Println(e)
    }
    var sortList []*info
    for _, v := range filesList {
        sortList = append(sortList, &info{v.Name(), v.ModTime()})
    }
    //newlist(sortList) 将一个只有数据的类型[]*info,强制类型转化为了带有满足sort.Sort方法的类型
    sort.Sort(newlist(sortList))
    for _, v := range sortList {
        fmt.Println("modify-time:", v.Time.Format("2006-01-02T 15:04:05")," filename:", v.Name,)
    }
}

运行效果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值