返回

新闻详情

兄弟连Go语言培训带你实战GO案例(5)Go 自定义排序


来源:成都兄弟连IT培训学校时间:2019/5/31 11:17:11

兄弟连GO语言培训课程体系设计架构包括了区块链的基础语言Go语言、区块链后端技术体系、区块链公链、区块链分布式应用开发等内容讲解,以及到最后的面试指导和项目实战。课程由清华微软谷歌名师团队精心打造,历时半年时间共同研发而出。

Go自定义排序

有的时候我们希望排序不是仅仅按照自然顺序排序。例如,我们希望按照字符串的长度来对一个字符串数

组排序而不是按照字母顺序来排序。这里我们介绍一下Go的自定义排序。

packagemain

import"sort"

import"fmt"

//为了能够使用自定义函数来排序,我们需要一个

//对应的排序类型,比如这里我们为内置的字符串

//数组定义了一个别名ByLength

typeByLength[]string

//我们实现了sort接口的Len,Less和Swap方法

//这样我们就可以使用sort包的通用方法Sort

//Len和Swap方法的实现在不同的类型之间大致

//都是相同的,只有Less方法包含了自定义的排序

//逻辑,这里我们希望以字符串长度升序排序

func(sByLength)Len()int{

returnlen(s)

}

func(sByLength)Swap(i,jint){

s,s[j]=s[j],s

}

func(sByLength)Less(i,jint)bool{

returnlen(s)

}

//一切就绪之后,我们就可以把需要进行自定义排序

//的字符串类型fruits转换为ByLength类型,然后使用

//sort包的Sort方法来排序

funcmain(){

fruits:=[]string{"peach","banana","kiwi"}

sort.Sort(ByLength(fruits))

fmt.Println(fruits)

}

输出结果

[kiwipeachbanana]

同样的,对于其他的类型,使用这种方法,我们可以为Go的切片提供任意的排序方法。归纳一下就是:

1.创建自定义排序类型

2.实现sort包的接口方法Len,Swap和Less

3.使用sort.Sort方法来排序


上一篇:兄弟连Go语言培训清华尹成带你实战GO案例(4)Go 字符串格式化

下一篇:兄弟连区块链培训带你实战GO案例(6)Go Base64编码

  咨询老师  拨打电话  网上报名