美文网首页Go知识库
使用sort包相关方法实现排序和逆序

使用sort包相关方法实现排序和逆序

作者: 波涛澎湃 | 来源:发表于2019-03-15 21:14 被阅读1次

    只要结构体(集合)实现了Less、Swap、Len三个方法即可使用sort包相关方法实现排序等操作。
    代码如下:

    
    import (
        "fmt"
        "sort"
    )
    
    type student struct{
        name string
        age int
    }
    type stuSlice []student
    
    func (s stuSlice)Len()int{
        return len(s)
    }
    func (s stuSlice)Less(i,j int)bool{
        return s[i].age<s[j].age
    }
    func (s stuSlice)Swap(i,j int){
        s[i],s[j] = s[j],s[i]
    }
    
    
    func main(){
        s:=stuSlice{}
        s = append(s,student{name:"xiaohong",age:29})
        s = append(s,student{name:"zhangsan3",age:18})
        s = append(s,student{name:"zhangsan",age:14})
        s = append(s,student{name:"zhangsan2",age:17})
        sort.Sort(s)
        fmt.Println("排序后结果:",s)
        sort.Sort(sort.Reverse(s))
        fmt.Println("逆序后结果:",s)
    }
    
    

    相关文章

      网友评论

        本文标题:使用sort包相关方法实现排序和逆序

        本文链接:https://www.haomeiwen.com/subject/hhhdmqtx.html