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

Задача: накопитель

Напишите функцию func makeAccumulator() (func(int) int, func()). Она возвращает две функции с общей суммой. Первая — накопитель: прибавляет свой аргумент к сумме и возвращает новую сумму. Вторая сбрасывает сумму в 0. Сумма каждого накопителя начинается с 0.

  • add, reset := makeAccumulator(), затем add(5) → 5
  • следующий вызов add(3) → 8
  • после reset() вызов add(4) → 4

Ограничения: аргументы от -1000 до 1000 и могут быть отрицательными или нулём; у каждой пары функций, созданной отдельным вызовом makeAccumulator, своя сумма, и вызовы одной пары не меняют другую.

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

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

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

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

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