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

Функция slices.DeleteFunc

Функция slices.DeleteFunc удаляет из слайса все элементы, для которых переданная функция-предикат возвращает true. Первый параметр функции — исходный слайс, второй параметр — функция-предикат, которая принимает элемент слайса и возвращает bool. Функция возвращает новый слайс, содержащий только те элементы, для которых предикат вернул false.

Синтаксис

slices.DeleteFunc(slice, func(elem T) bool)

Пример

Давайте удалим из слайса все четные числа:

package main import ( "fmt" "slices" ) func main() { nums := []int{1, 2, 3, 4, 5} res := slices.DeleteFunc(nums, func(n int) bool { return n%2 == 0 }) fmt.Println(res) }

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

[1 3 5]

Пример

Давайте удалим из слайса все строки длиной более 1 символа:

package main import ( "fmt" "slices" ) func main() { chars := []string{"a", "bc", "d", "ef", "g"} res := slices.DeleteFunc(chars, func(s string) bool { return len(s) > 1 }) fmt.Println(res) }

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

[a d g]

Пример

Давайте удалим из слайса все элементы, равные целевой строке:

package main import ( "fmt" "slices" ) func main() { items := []string{"x", "y", "z", "x", "x", "y"} target := "x" res := slices.DeleteFunc(items, func(s string) bool { return s == target }) fmt.Println(res) }

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

[y z y]

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

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