Перейти к содержимому
Задача · Функции как значения · урок 9 из 12

Задача: фильтр

Напишите функцию func filter(nums []int, keep func(int) bool) []int. Она возвращает новый срез из тех элементов nums, для которых keep возвращает true, в прежнем порядке. В примерах isEven и isPositive — функции из файла с тестами: первая проверяет, что число чётное, вторая — что оно больше нуля.

  • filter([]int{1, 2, 3, 4, 5, 6}, isEven) → [2 4 6]
  • filter([]int{-3, 0, 7, -1}, isPositive) → [7]
  • filter([]int{1, 3}, isEven) → []

Ограничения: в nums от 0 до 1000 элементов, и nums может быть пустым или nil; если ни один элемент не подходит, результат пустой; сам срез nums функция не меняет.

Не добавляйте лишних импортов, если в задаче это прямо не сказано.

filter.go — go
go · строк: 6
Ctrl+Enter запуск · Esc выйти из редактора

Подпишись, чтобы пройти курс

Курс бесплатный. Войди через Telegram и подпишись на канал — откроются все уроки.

Войти другим способом