首页 > 代码库 > 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语言为结构体排序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。