濮阳杆衣贸易有限公司

主頁 > 知識庫 > Go語言使用sort包對任意類型元素的集合進行排序的方法

Go語言使用sort包對任意類型元素的集合進行排序的方法

熱門標簽:外呼系統(tǒng)多少錢一年 旅游廁所如何電子地圖標注 滁州自建外呼系統(tǒng) 客服級電銷機器人 工商信用卡外呼系統(tǒng)教程 智能營銷軟件 經(jīng)常接到推銷電話機器人的電話 海外照相館地圖標注入駐 外呼系統(tǒng)如何接收服務密碼

本文實例講述了Go語言使用sort包對任意類型元素的集合進行排序的方法。分享給大家供大家參考。具體如下:

使用sort包的函數(shù)進行排序時,集合需要實現(xiàn)sort.Inteface接口,該接口中有三個方法:

復制代碼 代碼如下:
// Len is the number of elements in the collection. 
Len() int 
// Less reports whether the element with 
// index i should sort before the element with index j. 
Less(i, j int) bool 
// Swap swaps the elements with indexes i and j. 
Swap(i, j int)

以下為簡單示例:

復制代碼 代碼如下:
//對任意對象進行排序 
type Person struct { 
    name string 
    age  int 

 
//為*Person添加String()方法,便于輸出 
func (p *Person) String() string { 
    return fmt.Sprintf("( %s,%d )", p.name, p.age) 

 
type PersonList []*Person 
 
//排序規(guī)則:首先按年齡排序(由小到大),年齡相同時按姓名進行排序(按字符串的自然順序) 
 
func (list PersonList) Len() int { 
    return len(list) 

 
func (list PersonList) Less(i, j int) bool { 
    if list[i].age list[j].age { 
        return true 
    } else if list[i].age > list[j].age { 
        return false 
    } else { 
        return list[i].name list[j].name 
    } 

 
func (list PersonList) Swap(i, j int) { 
    var temp *Person = list[i] 
    list[i] = list[j] 
    list[j] = temp 

 
func interfaceTest0203() { 
    fmt.Println("------") 
    p1 := Person{"Tom", 19} 
    p2 := Person{"Hanks", 19} 
    p3 := Person{"Amy", 19} 
    p4 := Person{"Tom", 20} 
    p5 := Person{"Jogn", 21} 
    p6 := Person{"Mike", 23} 
 
    pList := PersonList([]*Person{p1, p2, p3, p4, p5, p6}) 
    sort.Sort(pList) 
    fmt.Println(pList) 
 
    /*output: 
    [( Amy,19 ) ( Hanks,19 ) ( Tom,19 ) ( Tom,20 ) ( Jogn,21 ) ( Mike,23 )] */ 
}

希望本文所述對大家的Go語言程序設計有所幫助。

您可能感興趣的文章:
  • golang使用sort接口實現(xiàn)排序示例
  • go語言中sort包的實現(xiàn)方法與應用詳解
  • go語言中排序sort的使用方法示例

標簽:湘潭 深圳 喀什 運城 本溪 晉城 九江 楚雄

巨人網(wǎng)絡通訊聲明:本文標題《Go語言使用sort包對任意類型元素的集合進行排序的方法》,本文關(guān)鍵詞  語言,使用,sort,包,對,任意,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Go語言使用sort包對任意類型元素的集合進行排序的方法》相關(guān)的同類信息!
  • 本頁收集關(guān)于Go語言使用sort包對任意類型元素的集合進行排序的方法的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    稻城县| 习水县| 日喀则市| 墨玉县| 什邡市| 镇巴县| 仁布县| 武威市| 巩义市| 兴义市| 武邑县| 麻栗坡县| 贡嘎县| 武强县| 尼玛县| 赣榆县| 台山市| 明溪县| 原平市| 利辛县| 平阳县| 合水县| 儋州市| 昌江| 霍邱县| 四子王旗| 中卫市| 广德县| 临泉县| 扎囊县| 乌兰浩特市| 宁陵县| 镇安县| 榕江县| 开远市| 嘉峪关市| 手游| 礼泉县| 东兴市| 弋阳县| 界首市|