Функция slices.Sort

Функция slices.Sort сортирует слайс любого типа, для которого определена операция сравнения (типы с упорядоченными значениями, такими как числа и строки). Она сортирует элементы слайса в порядке возрастания. Функция изменяет исходный слайс и не возвращает новый.

Синтаксис

goslices.Sort(slice)

Пример с целыми числами

Давайте отсортируем слайс целых чисел в порядке возрастания:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  numbers := []int{5, 2, 8, 1, 9, 3}
  slices.Sort(numbers)
  fmt.Println(numbers)
}

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

go[1 2 3 5 8 9]

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

Давайте отсортируем слайс строк в алфавитном порядке:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  words := []string{"banana", "apple", "cherry", "date"}
  slices.Sort(words)
  fmt.Println(words)
}

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

go[apple banana cherry date]

Пример с числами с плавающей точкой

Давайте отсортируем слайс чисел с плавающей точкой:

gopackage main

import (
  "fmt"
  "slices"
)

func main() {
  floats := []float64{3.14, 1.5, 2.7, 0.5, 9.8}
  slices.Sort(floats)
  fmt.Println(floats)
}

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

go[0.5 1.5 2.7 3.14 9.8]

Важные особенности

Функция slices.Sort изменяет исходный слайс, поэтому не требуется присваивать результат новой переменной. Она работает только с типами, которые поддерживают операторы сравнения (например, int, string, float64). Для сортировки слайсов с пользовательскими типами данных используется функция slices.SortFunc.

Функция не возвращает ошибку и всегда выполняет сортировку, даже если слайс уже отсортирован. В этом случае она просто проходит по слайсу без изменений.

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

  • функцию slices.SortFunc,
    которая сортирует слайс с использованием пользовательской функции сравнения
  • функцию slices.IsSorted,
    которая проверяет, отсортирован ли слайс
  • функцию slices.Reverse,
    которая изменяет порядок элементов слайса на противоположный
  • функцию slices.Clone,
    которая создает копию слайса