golang對slice的排序
golang里面需要使用sort包,並且實現幾個接口Len, Swap, Less
sort 包排序demo
假如現在有個slice 叫做 ids 里面保存的數據類型是int32
package main
import (
"fmt"
"sort"
)
type Int32List []int32
func (s Int32List) Len() int { return len(s) }
func (s Int32List) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (s Int32List) Less(i, j int) bool { return s[i] < s[j] }
func main() {
var ids []int32
ids = append(ids, 20, 50, 5, 100, 88)
// 對ids 進行排序,這樣排序是in place 形式的.
sort.Sort(Int32List(ids))
fmt.Println(ids)
}
//out: [5 20 50 88 100]
