go言語でのstringやint、structのsort

はじめに

どの言語でも一発でsortするメソッドは用意されているものだが、あまり馴染みのない言語だと時間がかかるものだ。
go言語でのsortについてまとめる。

以下、自分用メモ。

コード

package main

import (
	"fmt"
	"sort"
)

func main() {

	i := []int{5, 3, 2, 8, 7}
	s := []string{"c", "a", "z"}

	p := []struct {
		Name  string
		Point int
	}{
		{"AAA", 50},
		{"BBB", 40},
		{"CCC", 10},
		{"DDD", 20},
	}

	// Intをsort(昇順)
	sort.Ints(i)
	fmt.Println(i)

	// stringをアルファベット順にsort
	sort.Strings(s)
	fmt.Println(s)

	// structをStringでsort (名前順)
	sort.Slice(p, func(i, j int) bool { return p[i].Name < p[j].Name })
	fmt.Println(p)

	// structをIntでsort (昇順)
	sort.Slice(p, func(i, j int) bool { return p[i].Point < p[j].Point })
	fmt.Println(p)

}

出力結果

[2 3 5 7 8]
[a c z]
[{AAA 50} {BBB 40} {CCC 10} {DDD 20}]
[{CCC 10} {DDD 20} {BBB 40} {AAA 50}]

 

golang の書籍

golang の書き方ではなく、お作法を学ぶことができる良書。