Сортировка встроенных типов в Go

GolangGolangBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

Язык программирования Go предоставляет встроенный пакет под названием sort, который реализует сортировку для встроенных и пользовательских типов. В этом лабораторном задании мы сосредоточимся на сортировке для встроенных типов.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL go(("Golang")) -.-> go/AdvancedTopicsGroup(["Advanced Topics"]) go/AdvancedTopicsGroup -.-> go/sorting("Sorting") subgraph Lab Skills go/sorting -.-> lab-15508{{"Сортировка встроенных типов в Go"}} end

Сортировка

Задача, которую необходимо решить в этом лабораторном задании, — отсортировать срезы строк и целых чисел с использованием пакета sort.

  • Необходимо импортировать пакет sort.
  • Функцию sort.Strings() необходимо использовать для сортировки среза строк.
  • Функцию sort.Ints() необходимо использовать для сортировки среза целых чисел.
  • Функцию sort.IntsAreSorted() необходимо использовать для проверки, отсортирован ли срез целых чисел.
## Запуск нашей программы выводит отсортированные срезы строк и целых чисел
## и `true` в результате нашей проверки `AreSorted`.
$ go run sorting.go
Strings: [a b c]
Ints: [2 4 7]
Sorted: true

Ниже представлен полный код:

// В Go пакет `sort` реализует сортировку для встроенных
// и пользовательских типов. Мы сначала рассмотрим сортировку
// для встроенных типов.

package main

import (
	"fmt"
	"sort"
)

func main() {

	// Методы сортировки специфичны для встроенного типа;
	// вот пример для строк. Обратите внимание, что сортировка
	// происходит на месте, то есть она изменяет заданный срез
	// и не возвращает новый.
	strs := []string{"c", "a", "b"}
	sort.Strings(strs)
	fmt.Println("Strings:", strs)

	// Пример сортировки `int`.
	ints := []int{7, 2, 4}
	sort.Ints(ints)
	fmt.Println("Ints:   ", ints)

	// Мы также можем использовать `sort`, чтобы проверить,
	// отсортирован ли срез.
	s := sort.IntsAreSorted(ints)
	fmt.Println("Sorted: ", s)
}

Резюме

В Go пакет sort предоставляет простой и эффективный способ сортировки срезов встроенных типов. С использованием функций sort.Strings(), sort.Ints() и sort.IntsAreSorted() мы можем легко отсортировать и проверить, отсортирован ли срез.