Функция slices.Max

Функция slices.Max возвращает максимальный элемент из среза. Для числовых типов это наибольшее числовое значение, для строк - последняя строка в порядке лексикографического сравнения (по ASCII). В первый параметр мы передаем срез элементов, среди которых нужно найти максимум. Функция требует, чтобы элементы были сравнимыми с помощью оператора <.

Синтаксис

goslices.Max(slice)

Пример со срезом чисел

Давайте найдем максимальный элемент в срезе чисел []int{1, 2, 3, 4, 5}:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  numbers := []int{1, 2, 3, 4, 5}
  res := slices.Max(numbers)
  fmt.Println(res)
}

Результат выполнения кода:

go5

Пример со срезом строк

Давайте найдем максимальный элемент в срезе строк []string{"a", "b", "c", "d", "e"}:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  letters := []string{"a", "b", "c", "d", "e"}
  res := slices.Max(letters)
  fmt.Println(res)
}

Результат выполнения кода:

go"e"

Как видите, для строк максимальным является элемент с наибольшим значением в лексикографическом порядке.

Пример с отрицательными числами

Функция корректно работает и с отрицательными числами:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  numbers := []int{-5, -2, -10, -1, -8}
  res := slices.Max(numbers)
  fmt.Println(res)
}

Результат выполнения кода:

go-1

Смотрите также

  • функцию slices.Min,
    которая возвращает минимальный элемент в срезе
  • функцию slices.Contains,
    которая проверяет наличие элемента в срезе
  • функцию slices.Index,
    которая возвращает позицию первого вхождения элемента
  • функцию slices.Reverse,
    которая изменяет порядок элементов в срезе на обратный