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

Функция slices.ContainsFunc

Функция slices.ContainsFunc проверяет, содержится ли в слайсе элемент, удовлетворяющий условию, заданному в функции обратного вызова. Она возвращает true, если хотя бы один элемент соответствует условию, и false в противном случае. Первым параметром функция принимает слайс для поиска, вторым - функцию предикат, которая возвращает true для подходящего элемента.

Синтаксис

slices.ContainsFunc(slice, func)

Базовый пример с числами

Давайте проверим, содержит ли слайс чисел положительное число:

package main import ( "fmt" "slices" ) func main() { numbers := []int{-5, -3, 0, 2, 7} res := slices.ContainsFunc(numbers, func(n int) bool { return n > 0 }) fmt.Println(res) }

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

true

Поиск по строковому условию

Проверим, содержит ли слайс строк строку, начинающуюся с определенной буквы:

package main import ( "fmt" "slices" "strings" ) func main() { words := []string{"apple", "banana", "cherry", "date"} res := slices.ContainsFunc(words, func(s string) bool { return strings.HasPrefix(s, "b") }) fmt.Println(res) }

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

true

Поиск с пользовательским типом

Проверим, есть ли в слайсе структур человек с возрастом больше определенного значения:

package main import ( "fmt" "slices" ) type Person struct { Name string Age int } func main() { people := []Person{ {Name: "Alice", Age: 25}, {Name: "Bob", Age: 30}, {Name: "Charlie", Age: 35}, } res := slices.ContainsFunc(people, func(p Person) bool { return p.Age > 30 }) fmt.Println(res) }

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

true

Случай, когда элемент не найден

Проверим, содержит ли слайс чисел число, кратное 10:

package main import ( "fmt" "slices" ) func main() { numbers := []int{3, 7, 12, 25, 33} res := slices.ContainsFunc(numbers, func(n int) bool { return n%10 == 0 }) fmt.Println(res) }

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

false

Проверка на пустой слайс

Посмотрим, что вернет функция для пустого слайса:

package main import ( "fmt" "slices" ) func main() { var numbers []int res := slices.ContainsFunc(numbers, func(n int) bool { return n > 0 }) fmt.Println(res) }

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

false

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

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