Index
ソート
sortパッケージをインポートする
package main
import (
"fmt"
"sort" // sortパッケージ
)
func main() {
}
シンプルなソート
s := []string{"e", "d", "c", "b", "a"}
// 昇順
sort.Sort(sort.StringSlice(s))
fmt.Println(s) // ->[a b c d e]
// 降順
sort.Sort(sort.Reverse(sort.StringSlice(s)))
fmt.Println(s) // ->[e d c b a]
構造体のソート
構造体をソートするためには、インターフェイスを実装する必要がある
package main
import (
"fmt"
"sort"
)
// 構造体
type Person struct {
name string
age int
}
// 構造体のスライス
type People []Person
// sortインタフェース実装
func (p People) Len() int { return len(p) }
func (p People) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
func (p People) Less(i, j int) bool { return p[i].age < p[j].age }
func main() {
var people People = []Person{{"A", 25}, {"B", 19}, {"C", 22}}
sort.Sort(people)
fmt.Println(people) // -> [{B 19} {C 22} {A 25}]
}