Тип 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,
которая выполняет бинарный поиск строки в отсортированном срезе