Функция sort.Strings

Функция sort.Strings сортирует слайс строк в порядке возрастания (лексикографическом порядке). Она принимает один параметр - слайс строк, который нужно отсортировать. Функция изменяет исходный слайс и не возвращает никакого значения. Для использования функции необходимо импортировать пакет sort.

Синтаксис

gosort.Strings(slice)

Пример

Давайте отсортируем слайс строк []string{"d", "b", "e", "a", "c"}:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  slice := []string{"d", "b", "e", "a", "c"}
  sort.Strings(slice)
  fmt.Println(slice)
}

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

go[a b c d e]

Пример

Давайте отсортируем слайс строк с числами []string{"10", "2", "1", "3", "20"}:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  slice := []string{"10", "2", "1", "3", "20"}
  sort.Strings(slice)
  fmt.Println(slice)
}

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

go[1 10 2 20 3]

Обратите внимание, что строки сортируются лексикографически, поэтому "10" идет перед "2".

Пример

Давайте проверим, работает ли сортировка со строкой, содержащей специальные символы:

gopackage main

import (
  "fmt"
  "sort"
)

func main() {
  slice := []string{"z", "A", "!", "b", "1"}
  sort.Strings(slice)
  fmt.Println(slice)
}

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

go[! 1 A b z]

Функция сортирует строки на основе их байтовых значений, поэтому специальные символы и цифры идут перед буквами.

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

  • функцию sort.Ints,
    которая сортирует слайс целых чисел
  • функцию sort.Float64s,
    которая сортирует слайс чисел с плавающей точкой
  • функцию sort.StringsAreSorted,
    которая проверяет, отсортирован ли слайс строк
  • функцию sort.SearchStrings,
    которая ищет элемент в отсортированном слайсе строк