GO语言为结构体排序
2017-06-07 17:46
453 查看
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语言的排序、结构体排序
- GO语言为结构体排序
- Go语言中面向对象-结构体和方法
- 09.go语言结构体、值接受者/指针接受者、指针和值
- Go语言中结构体的使用-第1部分结构体
- Go语言实现位图排序(bitmap)
- 算法代码实现之三向切分快速排序,Golang(Go语言)实现
- Go语言中结构体的使用-第2部分OOP
- go语言结构体
- go语言笔记——map map 默认是无序的,不管是按照 key 还是按照 value 默认都不排序
- go语言中空结构体的使用
- Go语言 channel如何实现归并排序中的merge函数详解
- go语言中排序sort的使用方法示例
- 李艺:Go语言之内的结构体模拟继承
- go语言结构体
- Go语言对数组进行冒泡排序和快速排序
- Go语言学习七:结构体
- Go语言中结构体方法副本传参与指针传参的区别介绍
- Go语言写基数排序
- 算法代码实现之快速排序,Golang(Go语言)实现