教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 GO语言为结构体排序

GO语言为结构体排序

发布时间:2023-02-04   编辑:jiaochengji.com
教程集为您提供GO语言为结构体排序等资源,欢迎您收藏本站,我们将为您提供最新的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]
}

到此这篇关于“GO语言为结构体排序”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
2018年最全Go语言教程零基础入门到进阶实战视频
Go语言发展历史、核心、特性及学习路线
从零开始学习GO语言-搭建Go语言开发环境-快速开发入门第一个小程序
龙芯平台构建Go语言环境指南
go run main.go 参数_Go语言入门:Hello world
[GO语言基础] 一.为什么我要学习Golang以及GO语言入门普及
Go 语言十年而立,Go2 蓄势待发
[View]我不喜欢“我不喜欢 Go 语言的十个理由”的十个理由
go 函数末尾缺少返回值_王垠:Go语言野心勃勃,实际情况又如何
第07章 Go语言接口(interface),Golang接口(interface)

[关闭]
~ ~