РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
232 of 1593 menu

Функция sort.Slice

Функция sort.Slice сортирует срез с использованием пользовательской функции сравнения. Она принимает два параметра: первый параметр - срез, который нужно отсортировать, второй параметр - функцию сравнения, которая должна возвращать true, если элемент с индексом i должен располагаться перед элементом с индексом j. Сортировка не является устойчивой: порядок равных элементов может измениться.

Синтаксис

sort.Slice(slice, func(i, j int) bool { return slice[i] < slice[j] })

Пример

Давайте отсортируем срез строк по возрастанию:

package main import ( "fmt" "sort" ) func main() { slice := []string{"a", "c", "b", "e", "d"} sort.Slice(slice, func(i, j int) bool { return slice[i] < slice[j] }) fmt.Println(slice) }

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

[a b c d e]

Пример

Давайте отсортируем срез чисел по убыванию:

package main import ( "fmt" "sort" ) func main() { slice := []int{1, 5, 3, 4, 2} sort.Slice(slice, func(i, j int) bool { return slice[i] > slice[j] }) fmt.Println(slice) }

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

[5 4 3 2 1]

Пример

Давайте отсортируем срез структур по возрасту:

package main import ( "fmt" "sort" ) type Person struct { Name string Age int } func main() { people := []Person{ {"Alice", 30}, {"Bob", 25}, {"Charlie", 35}, } sort.Slice(people, func(i, j int) bool { return people[i].Age < people[j].Age }) fmt.Println(people) }

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

[{Bob 25} {Alice 30} {Charlie 35}]

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

  • функцию sort.SliceStable,
    которая выполняет устойчивую сортировку среза
  • функцию sort.Ints,
    которая сортирует срез целых чисел
  • функцию sort.Strings,
    которая сортирует срез строк
  • функцию sort.SliceIsSorted,
    которая проверяет, отсортирован ли срез по заданному правилу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить