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

Тип sort.StringSlice

Тип sort.StringSlice является оберткой над []string, которая реализует интерфейс sort.Interface. Это позволяет использовать все функции пакета sort для работы со срезами строк: сортировку, поиск, проверку на отсортированность. Тип предоставляет методы Sort для сортировки, Search для бинарного поиска, а также методы Len, Less, Swap для реализации интерфейса.

Синтаксис

type StringSlice []string

Пример

Давайте создадим срез строк и отсортируем его с помощью метода Sort:

package main import ( "fmt" "sort" ) func main() { slice := sort.StringSlice{"zebra", "apple", "banana", "dog"} slice.Sort() fmt.Println(slice) }

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

[apple banana dog zebra]

Пример

Давайте выполним бинарный поиск элемента в отсортированном срезе с помощью метода Search. Метод возвращает индекс элемента, если он найден, или индекс места для вставки, если элемент отсутствует:

package main import ( "fmt" "sort" ) func main() { slice := sort.StringSlice{"apple", "banana", "dog", "zebra"} index := slice.Search("banana") fmt.Println(index) }

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

1

Пример

Давайте проверим, отсортирован ли срез с помощью функции sort.IsSorted, передав в нее срез типа sort.StringSlice:

package main import ( "fmt" "sort" ) func main() { slice1 := sort.StringSlice{"apple", "banana", "dog"} slice2 := sort.StringSlice{"zebra", "apple", "banana"} fmt.Println(sort.IsSorted(slice1)) fmt.Println(sort.IsSorted(slice2)) }

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

true false

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

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