技術向上

プログラミングの学び、気になるテクノロジーやビジネストレンドを発信

sort【Go】

スライスの並び替えをすることができます。
intやstringなど対象の型によって、記述方法が異なります。

s := []string{"ai", "hy", "bg", "rc"}
i := []int{1, 44, 100, 56, 89, 2}
type st struct {   // 後でstructのスライスに要素を追加しない場合は、[]struct{定義}{要素}のように記述できる
    Name string
    Age  int
}
sts := []st{
    {"Amy", 38},
    {"Cameron", 29},
    {"Boomer", 12},
    {"James", 92},
}

sts = append(sts, st{Name: "Rami", Age: 38})    //要素を追加する

sort.Strings(s)
sort.Ints(i)
sort.Slice(sts, func(i, j int) bool { return sts[i].Name < sts[j].Name })    // Nameの昇順に並び替える
sort.Slice(sts, func(i, j int) bool { return sts[i].Age > sts[j].Age })  // Ageの降順に並び替える

fmt.Println(s, i, sts)