Goでスライス内の最大値・最小値を抽出する関数


はじめに

Goでコードを書いているとスライス内の最大値、もしくは最小値を算出する処理を
何度か利用したので忘れないためにもメモ

スライス内の最大値を取得

func maxInt(a []int) int {
    sort.Sort(sort.IntSlice(a))
    return a[len(a)-1]
}

スライス内の最小値を取得

func minInt(a []int) int {
    sort.Sort(sort.IntSlice(a))
    return a[0]
}

サンプルコード

以下コードをThe Go Playgroundでコピペして実行

package main
import "fmt"
import "sort"

func main() {
    test := []int{7, 8 ,1, 4, 3, 21}

    fmt.Println("max:", maxInt(test))
    fmt.Println("min:", minInt(test))
}


func maxInt(slice []int) int {
    sort.Sort(sort.IntSlice(slice))
    return slice[len(slice)-1]
}


func minInt(slice []int) int {
    sort.Sort(sort.IntSlice(slice))
    return slice[0]
}

参考