最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

golang編程開發(fā)使用sort排序示例詳解

 更新時間:2021年11月15日 16:58:49   作者:秋天的春  
這篇文章主要為大家介紹了go語言編程開發(fā)使用sort來排序示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪

golang sort package: https://studygolang.com/articles/3360

sort 操作的對象通常是一個 slice,需要滿足三個基本的接口,并且能夠使用整數(shù)來索引

// A type, typically a collection, that satisfies sort.Interface can be
// sorted by the routines in this package. The methods require that the
// elements of the collection be enumerated by an integer index. 
type Interface interface { 
// 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) 
}

ex-1 對 []int 從小到大排序 

package main 
import ( 
"fmt" 
"sort" 
) 
type IntSlice []int
func (s IntSlice) Len() int { return len(s) }
func (s IntSlice) Swap(i, j int){ s[i], s[j] = s[j], s[i] } 
func (s IntSlice) Less(i, j int) bool { return s[i] < s[j] }
func main() { 
a := []int{4,3,2,1,5,9,8,7,6} 
sort.Sort(IntSlice(a)) 
fmt.Println("After sorted: ", a)
 
}

 ex-2 使用 sort.Ints 和 sort.Strings
golang 對常見的 []int []string 分別定義了 IntSlice StringSlice, 實現(xiàn)了各自的排序接口。而 sort.Ints 和 sort.Strings 可以直接對 []int 和 []string 進行排序, 使用起來非常方便 

package main 
import (
"fmt" 
"sort" 
)
func main() {
a := []int{3, 5, 4, -1, 9, 11, -14} 
sort.Ints(a) 
fmt.Println(a)
ss := []string{"surface", "ipad", "mac pro", "mac air", "think pad", "idea pad"} 
sort.Strings(ss)
fmt.Println(ss) 
sort.Sort(sort.Reverse(sort.StringSlice(ss))) 
fmt.Printf("After reverse: %v\n", ss) 
}
 

ex-3 使用 sort.Reverse 進行逆序排序
如果我們想對一個 sortable object 進行逆序排序,可以自定義一個type。但 sort.Reverse 幫你省掉了這些代碼

package main 
import ( 
"fmt" 
"sort" 
)
func main() { 
a := []int{4,3,2,1,5,9,8,7,6} 
sort.Sort(sort.Reverse(sort.IntSlice(a)))
fmt.Println("After reversed: ", a)
 
}

ex-4 使用 sort.Stable 進行穩(wěn)定排序
sort.Sort 并不保證排序的穩(wěn)定性。如果有需要, 可以使用 sort.Stable 

package main 
import ( 
"fmt" 
"sort" 
)
type person struct {
Name string
Age int
}
type personSlice []person 
func (s personSlice) Len() int { return len(s) }
func (s personSlice) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s personSlice) Less(i, j int) bool { return s[i].Age < s[j].Age } 
func main() {
a := personSlice {
{ 
Name: "AAA",
Age: 55,
}, 
{
Name: "BBB",
Age: 22,
}, 
{
Name: "CCC",
Age: 0,
},
{
Name: "DDD",
Age: 22,
},
{ 
Name: "EEE",
Age: 11, 
},
}
sort.Stable(a)
fmt.Println(a) 
}

以上就是go語言編程使用sort來排序示例詳解的詳細內(nèi)容,更多關(guān)于go語言sort排序的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Go標(biāo)準庫http與fasthttp服務(wù)端性能對比場景分析

    Go標(biāo)準庫http與fasthttp服務(wù)端性能對比場景分析

    這篇文章主要介紹了Go標(biāo)準庫http與fasthttp服務(wù)端性能比較,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • Go?Excelize?API源碼解析GetSheetFormatPr使用示例

    Go?Excelize?API源碼解析GetSheetFormatPr使用示例

    這篇文章主要為大家介紹了Go?Excelize?API源碼解析GetSheetFormatPr使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08
  • Golang內(nèi)存泄漏場景以及解決方案詳析

    Golang內(nèi)存泄漏場景以及解決方案詳析

    golang中內(nèi)存泄露的發(fā)現(xiàn)與排查一直是來是go開發(fā)者頭疼的一件事,下面這篇文章主要給大家介紹了關(guān)于Golang內(nèi)存泄漏場景以及解決的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • go:gin輸出日志文件方式

    go:gin輸出日志文件方式

    這篇文章主要介紹了go:gin輸出日志文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • GO語言開發(fā)終端命令行小工具改進更新

    GO語言開發(fā)終端命令行小工具改進更新

    這篇文章主要為大家介紹了GO語言開發(fā)終端命令行小工具的改進更新,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • Go1.21新增內(nèi)置函數(shù)(built-in?functions)詳解

    Go1.21新增內(nèi)置函數(shù)(built-in?functions)詳解

    Go?1.21新增的內(nèi)置函數(shù)分別是?min、max?和?clear,這篇文章主要帶大家一起了解一下這幾個函數(shù)的用途和使用示例,感興趣的小伙伴可以學(xué)習(xí)一下
    2023-08-08
  • Go每日一庫之zap日志庫的安裝使用指南

    Go每日一庫之zap日志庫的安裝使用指南

    這篇文章主要為大家介紹了Go每日一庫之zap安裝使用示例學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • 一篇文章帶你搞懂Go語言標(biāo)準庫Time

    一篇文章帶你搞懂Go語言標(biāo)準庫Time

    在我們開發(fā)的過程中,每個項目都需要時間這一類的函數(shù),此時對time這個包的研究深度就顯得尤為重要,這篇文章主要給大家介紹了關(guān)于如何通過一篇文章帶你搞懂Go語言標(biāo)準庫Time的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • go開發(fā)中引用靜態(tài)庫.a文件的方法

    go開發(fā)中引用靜態(tài)庫.a文件的方法

    這篇文章主要介紹了go開發(fā)中引用靜態(tài)庫.a文件的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Go語言特點及基本數(shù)據(jù)類型使用詳解

    Go語言特點及基本數(shù)據(jù)類型使用詳解

    這篇文章主要為大家介紹了Go語言特點及基本數(shù)據(jù)類型使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03

最新評論

琼海市| 青田县| 阳泉市| 毕节市| 四平市| 启东市| 安龙县| 聂拉木县| 梅河口市| 闵行区| 安平县| 射阳县| 旌德县| 左权县| 宜川县| 衡南县| 河曲县| 孟村| 丹巴县| 泗水县| 凌海市| 旬阳县| 郸城县| 赞皇县| 新田县| 大关县| 霍邱县| 渑池县| 连城县| 建湖县| 通州区| 新营市| 兰西县| 赣榆县| 西乌| 浏阳市| 清新县| 南漳县| 咸丰县| 闵行区| 工布江达县|