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

Функция slices.CompactFunc

Функция slices.CompactFunc удаляет последовательные повторяющиеся элементы в слайсе, используя пользовательскую функцию для сравнения. В первый параметр мы передаем слайс, во второй параметр мы передаем функцию сравнения, которая принимает два элемента и возвращает true, если они считаются равными. Функция изменяет исходный слайс и возвращает новый слайс, содержащий только уникальные элементы в порядке их первого появления.

Синтаксис

slices.CompactFunc(slice, func(a, b T) bool)

Пример

Давайте удалим последовательные дубликаты в слайсе строк с помощью пользовательской функции сравнения:

package main import ( "fmt" "slices" ) func main() { slice := []string{"a", "a", "b", "b", "c", "c", "d"} res := slices.CompactFunc(slice, func(a, b string) bool { return a == b }) fmt.Println(res) }

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

[a b c d]

Пример

Давайте удалим последовательные дубликаты в слайсе чисел с использованием пользовательской функции сравнения:

package main import ( "fmt" "slices" ) func main() { slice := []int{1, 1, 2, 3, 3, 3, 4, 5, 5} res := slices.CompactFunc(slice, func(a, b int) bool { return a == b }) fmt.Println(res) }

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

[1 2 3 4 5]

Пример

Давайте удалим последовательные дубликаты с игнорированием регистра:

package main import ( "fmt" "slices" "strings" ) func main() { slice := []string{"a", "A", "b", "B", "b", "c", "C"} res := slices.CompactFunc(slice, func(a, b string) bool { return strings.ToLower(a) == strings.ToLower(b) }) fmt.Println(res) }

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

[a b c]

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

  • функцию slices.Compact,
    которая удаляет последовательные дубликаты с использованием стандартного сравнения
  • функцию slices.EqualFunc,
    которая проверяет равенство двух слайсов с пользовательской функцией сравнения
  • функцию slices.ContainsFunc,
    которая проверяет наличие элемента в слайсе с пользовательской функцией сравнения
  • функцию slices.IndexFunc,
    которая возвращает индекс элемента, удовлетворяющего условию
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить